您的位置:首页 > 编程语言 > C语言/C++

[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 指针 数组 指针加1