有以下定义和语句 C语言
inta[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[...
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
为什么,过程 展开
则*(p[0]+1)所代表的数组元素是 C。
A. a[0][1]
B. a[1][0]
C. a[1][1]
D. a[1][2]
参考答案: C
为什么,过程 展开
2个回答
展开全部
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]
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]
展开全部
a是3*2数组,a[][]是int型,则a[]为int型指针,int *p[3]申请了长度为3的指针型数组,也就是说p[0]、p[1]、p[2]都是指针,将a[1]赋给p[0],p[0]就是一个指针型,指向a[1][0](注意:*a相当于a[0],*(p[0])既是p[0][0],*(a[1])就是a[1][0]),又因为数组在内存中是顺序存放,p[0]+1就指向数组中的下一个元素,即a[1][1]。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询