c语言题,为什么选D,题目中* (p+3)+3指什么
展开全部
基础知识:指针加减与数组加减运算
数组加减实际上等效于指向数组首元素的指针加减。
T类型 * p; p+n在数值上等价于p+n*(sizeof(T类型))
首先我们分析一下p的类型:
long int (*p)[4],说明p是一个指针,指针指向的数据类型是一个long int [4];
所以p+3从数值上来看,效果等效于p+3*sizeof(long int[4]) = a+3*16
*(p+3)是取值,由于p是一个指向数组的指针,所以*(p+3)是一个数组,数组元素的类型为long int
所以*(p+3)+3从数值上来看 = *(p+3)+3*sizeof(long int) = a+3*16+3*4 = 100H+30H+CH=13CH;
数组加减实际上等效于指向数组首元素的指针加减。
T类型 * p; p+n在数值上等价于p+n*(sizeof(T类型))
首先我们分析一下p的类型:
long int (*p)[4],说明p是一个指针,指针指向的数据类型是一个long int [4];
所以p+3从数值上来看,效果等效于p+3*sizeof(long int[4]) = a+3*16
*(p+3)是取值,由于p是一个指向数组的指针,所以*(p+3)是一个数组,数组元素的类型为long int
所以*(p+3)+3从数值上来看 = *(p+3)+3*sizeof(long int) = a+3*16+3*4 = 100H+30H+CH=13CH;
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询