大学生创新创业网站开发,源码网站代理,建e网全景,有创意的域名#xff08;1#xff09;a[1]和a[1]
a[1]:二维数组的第二行元素#xff0c;即a[1]是以a[1][0]开头的一维数组#xff0c;类型是一级指针
a[1]:二维数组的第二行元素的地址#xff0c;类型是二级指针 #xff08;2#xff09;a1与*#xff08;a1#xff09…1a[1]和a[1]
a[1]:二维数组的第二行元素即a[1]是以a[1][0]开头的一维数组类型是一级指针
a[1]:二维数组的第二行元素的地址类型是二级指针 2a1与*a1的值相同
很多人认为a1是地址那么*a1就是该地址指向的存储单元的内容为什么会是一个值
答
a1是二维数组序号为1的行的起始地址而*(a1)并不是a1单元的内容因为a1不是一个数组元素的地址也就谈不上是存储单元的内容了所以*(a1)就是a[1],而a[1]是一维数组名指向a[1][0],所以*a1和a[1]都是a[1][0]的地址 3a[1]2,a[1][2]
a[1]2,a[1][2]和*(a1)2
都表示 1行2列元素a[1][2]的地址 4*p*p*p
因为和*同优先级结合方向为自右向左所以*p*p
*p先取*p值再使p加1以a[0]为例若输出*(p),则得到a[0]
*p先使p加1再取*p的值,也以a[0]为例若输出*p得到a[1] (*p)表示p所指向的元素加1如果pa,(*p)相当于a[0],若a[0]3,那么(*p)4,注意是a[0]的值加1而不是指针p的值1 5int*p[n],int *p[n]
int (*p)[n]表示定义一个指针指向一个int[n]型的指针。
例如int*p[4]
p为指向包含4个元素的一维数组的指针变量
int *p[n] 就是一个指针数组,数据类型为int 元素为地址变量地址数组地址函数地址等,也就是说定义了n个不同指向int型的指针。在字符优先级表中[ ]的优先级大于*所以int *p[n] 就等价于int *(p[n])
例如int *p[4]
定义指针数组p,他由4个指向整型数据的指针元素组成 (6) int *p()int (*p)()
int *p():p为返回一个指针的函数该指针指向整形数据
int (*p)p为指向函数的指针该函数返回一个整型值 先记录这一些再遇到问题会继续记录下来