(筆記)C++ Primer/第四章 數組和指針

指針

void*指針

void*指針可以保存任何類型的對象地址,不過void*指針不能修改指向對象的值.

 

創建動態數組

c++語言中,可以使用new和delete實現動態內存的創建和銷燬

動態數組的定義

例:int* pia=new int[10];//分配了一個10個int型元素數組,並返回該數組元素的第一個指針.用於初始化pia指針

初始化動態分配數組

int* pia=new int[10]();//10個元素初始化爲0

int* pia=new int[10](5);//10個元素初始化爲5

const對象的動態數組

const int* pci_bad=new const int[100];//錯,沒有初始化值

cosnt int* pci_ok=new const int[100]();//對,初始化了.沒有動態分配的初始化時,此類型必須提供默認構造函數

動態空間釋放

delete [] pia;//不能少了方括號

 

新舊代碼兼容

混合使用string和c風格字符串

string st("abc");

const char* str=st.c_str()//返回第一個元素的const char*指針並以結束符null結束.

 

使用數組初始化vector對象

int array[6]={1,2,3,4,5,6};

vector<int> vc(array,array+6);

 

指針和多維數組

int ia[3][4];

int (*ip)[4]=&ia[2];//圓括號不能少,指向第2列4個元素的數組 從內往外閱讀*ip是一個int [4]類型-ip是一個指向4個元素數組的指針.

 

用typedef簡化指向多維數組的指針

typedef int int_array[4];

int_array *ip=ia;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章