指针*p=a+3,是不是*p=a【0】+3

1个回答
展开全部
摘要 您好,不完全正确。假设a是一个数组的名字,那么a[0]表示数组a的第一个元素的值,而&p表示指向a数组第4个元素的指针。因此,指针p的值是a数组的第4个元素的地址,就像这样:p = &a[3]。而*p就是指向指针p所指向的a数组第4个元素的值,即a[3]的值,就像这样:*p = a[3]。所以,指针*p=a+3和*p=a[0]+3并不等价。
咨询记录 · 回答于2023-04-18
指针*p=a+3,是不是*p=a【0】+3
您好,不完全正确。假设a是一个数组的名字,那么a[0]表示数组a的第一个元素的值,而&p表示指向a数组第4个元素的指针。因此,指针p的值是a数组的第4个元素的地址,就像这样:p = &a[3]。而*p就是指向指针p所指向的a数组第4个元素的值,即a[3]的值,就像这样:*p = a[3]。所以,指针*p=a+3和*p=a[0]+3并不等价。
这道题为啥等于5
亲,图片识别不了哦
发文字
int a【】={1,2,3,4,5,6,7,8},*p=a+3;p1=2;printf(“%d”,*(p+4))
为啥等于5
根据提供的代码,*p1的值是未知的,因为p1没有被定义和初始化。而*(p+4)的值表示p指向的地址往后移4个int类型数据的位置,因此它指向数组a中的第7个元素a[6],其值为7,所以printf语句的输出结果为7,不等于A选项中的2,也不等于C选项中的5。因此,建议确认代码的正确性并重新运行,确保输出结果的正确性。
输出结果为:7解析:- 首先,定义了一个整型数组a,并初始化为{1,2,3,4,5,6,7,8}。- 然后,定义了一个指针p,指向数组a的第4个元素(即a[3]),也就是数字4。- 接着,将p1赋值为2,但是这个变量并没有被使用到。- 最后,输出*(p+4),也就是p所指向的元素往后数第4个元素的值。由于p指向的是数字4,所以往后数第4个元素就是数字7。因此输出结果为7。
下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消