[C/C++]数组与指针——a,a[0],&a,&a[0]区别小结
2014-01-29 12:16
375 查看
1.a,a[0],&a,&a[0]
通过在VS上实验,以下是关于C语言中数组与指针的关系——a,a[0],&a,&a[0]之间的区别小小的总结对于二维数组a[3][5]
a int(*)[5]类型 ——即指向的是a[0]
a[0] int *类型 ——即指向的是a[0][0]
&a int(*)[3][5]类型 ——即指向的是整个数组的首地址
&a[0] int(*)[5]类型 ——即指向的是a[0]
对于一维数组a[3]
a int *类型 ——即指向的是a[0]
a[0] int *类型 ——即指向的是a[0]
&a int(*)[3]类型 ——即指向的是整个数组的首地址
&a[0] int *类型 ——即指向的是a[0]
2.指针数组和指向数组的指针
int *p[5] 指针数组:是数组,但数组中的每个元素都是指针int (*p)[5] 指向数组的指针:是指针,但它指向的是一个数组,相当于 int a[5]。 *p相当于a,即p=&a,则可合并为int (*p)[5]=&a。
3.指针加1
指针加1要根据指针类型加上一定的值,不同类型的指针加1之后增加的大小不同。指针只是一个内存地址,但指针指向地址的长度可能不同。
详细实例可参见博文 http://blog.csdn.net/tmljs1988/article/details/6704535
本文不详尽或错误之处,请各位不吝言辞,多多指教~谢谢~
作者:Louise http://blog.csdn.net/yupingliu
相关文章推荐
- c++ 指针值和指针地址的输出&指针和数组保存字符串的区别
- More Effective C++----(1)指针与引用的区别 & (2)尽量使用C++风格的类型转换 & (3)不要对数组使用多态
- 详细介绍C/C++数组名与指针区别
- 【C/C++】数组和指针的区别
- c++中指针和数组的区别
- C++ 运算符优先级 以及指针数组和数组指针的区别
- [转帖] C/C++数组名与指针区别深层探索
- C/C++数组名与指针区别深入探索
- C/C++数组名与指针区别深入探索
- C/C++数组名与指针区别深入探索
- C/C++数组名与指针区别深入探索
- C/C++数组名与指针区别深入探索
- 【C++】指针&引用的区别
- C/C++数组名与指针区别深入探索
- C++之数组名和指针的区别---补充(10)《Effective C++》
- C++ 指针数组与数组指针的区别
- 上机实践 - - 一个例子了解C/C++中指针与数组的区别
- 从C++指针定义字符串和数组定义字符串区别到C++堆和栈区别
- C和指针之数组名和&数组名和&首元素以及sizeof(数组名)和sizeof(数组名作为参数)区别
- [C/C++](int)a,&a,(int)&a,(int&)a区别小结