17. 指针数组和数组指针

指针数组:组成元素是指针的数组。

数组指针:指向数组的指针。

//变长字符串数组,保存每个字符串的首地址,字符串内容保存在只读区

//结合指针作为数组的元素,即可使得存储更紧凑,有可以带来访问优势

const char *pszBuff[] = {

"wqerasdf",

"wqe4f",

"wqwertd2324f",

"23f",

};

 

//定长字符串数组,每个元素都占用32字节

char szBuff[][32] = {

"wqerasdf",

"wqe4f",

"wqwertd2324f",

"23f",

};

 

【数组名】是【数组第0个元素】类型的指针常量。

【二维数组】的元素是【一维数组】

对【某类型的指针】做*运算,得到【某类型】的引用

 

【szBuff】是【char [32]】类型的指针常量。

【szBuff】的元素是【char [32]】

*szBuff,得到【char [32]】的引用

也就是说,*szBuff得到了一维数组的引用

也就是说,*szBuff是char类型的指针常量
**szBuff得到char的引用

 

 

int a[3];

a是指向数组第0元素的指针常量,所以是int*

int变量取地址,得到int*

float变量取地址,得到float*

对数组类型取地址,得到 数组*

所以对a取地址,也就是&a,得到int(*)[3]

 

 

 

 

指针运算的要点:

什么类型的指针参与运算

怎么运算

运算后得到什么类型

 

 

猜你喜欢

转载自www.cnblogs.com/Nutshelln/p/12758384.html