作业帮 > 综合 > 作业

有以下定义和语句 C语言

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/11 16:18:49
有以下定义和语句 C语言
int a[3][2]={1,2,3,4,5,6,},*p[3]; p[0]=a[1];
则*(p[0]+1)所代表的数组元素是 C.
A.a[0][1]
B.a[1][0]
C.a[1][1]
D.a[1][2]
C
为什么,
int a[3][2]={1,2,3,4,5,6}产生的结果是
a[0][0]=1,a[0][1]=2,a[1][0]=3,a[1][1]=4,a[2][0]=5,a[2][1]=6
根据数组的表示法,数组名可以指代数组整体,还可以指代数组头元素位置
也就是说a[0]就是表示1,2中的那个1的位置,a[1]就表示3,4中3的位置,类推a[2]指的是5的位置
*p[3]是声明一个整形指针的数组,也就是说是三个p,每个p都是指向整数的
p[0]=a[1]就是相当于p[0]=&a[1][0],也就是让p[0]指向3的位置
--------------------以上是题设的内容-----------------------
p[0]+1,根据指针的用法,指针进行加减操作,就是让指针在内存中前后移动
那么p[0]原来指向3的位置,p[0]+1就是让指针后移,那么就是指到了4的位置上
而*(指针),表示的是指针所指位置上的实际变量,即*(4的位置)那么就是4了,也就是a[1][1]