首地址:一段连续的存储地址中,第一个单元的地址是首地址。
指针类型的加减,是以指针所指向的类型为单位,进行偏移。
一维数组与指针:
定义一个一维数组,数组名是整个数组首地址。
int a[5];
其中a和&a[0]是相同的,都是整个数组的首地址,类型是int*
但是&a的类型是int(*)[5],,指向数组的整个地址。
如何利用指针访问数组的值?
定义一个数组 int a={1,2,3,4,5};
定义一个指针 int *p =a;//a代表了这个数组的首地址,p指向a[0]
那么*p的就是取值a[0]
p+1就是对应&a[1],那么*(p+1)就是a[1]
p+2就是对应&a[2],那么*(p+2)就是a[2].
。。。以此类推
二维数组和指针
int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
a作为首地址,指向的是一维数组的第一个地址,就是a指向a[0],a+1指向a[1],a+2指向a[2]。a的类型就是int(*)[4]。
int a[2][3][4] a作为首地址,类似的指向二维数组的第一个地址。
指针数组:int*[]
数组指针:int(*)[]
原文链接: https://www.cnblogs.com/xiaohuang007/p/12240224.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;
也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/325746
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!