一道关于C语言的指针问题

2021-01-26 11:29:27 字数 546 阅读 2803

1楼:匿名用户

下面解释一下为什么选b

p是a[0]的指针当然*p=a[0]了也就是1那么为什么输出*(p+3)时结果是版6而不是权4呢?

是因为*(p+3)+=2也就是:

*(p+3)=*(p+3)+2

在执行上面赋值表达式时刚开始时*(p+3)的值是4但是*(p+3)=*(p+3)+2也就是*(p+3)=4+2这一步是把*(p+3)看做一个变量对其进行从新赋值,就得结果6了。

2楼:匿名用户

p=a:这里

抄将p指向a的首地址,也bai就是a[0]的地址所以p+3也就是指向相du对于a偏移3个单位的成员,zhi也就是a[3]的地dao址了,

所以*(p+3)也就是a[3](就是数组中的4),*(p+3)+=2,就是将a[3]的值再加上2,所以就由4变为6,所以最后输出*p,*(p+3)的值就变为:1,6

3楼:翱翔之冠军

﹡p是指向第一个

﹡(p+3)等于﹡(p+3)+=2

所以分别指向第一和第六

求问下大神,C语言指针问题,大神大神,赐教啊,关于C语言指针问题。

1楼 阳光的雷咩咩 从声明可知l本身是指针类型,整个函数都是对l为头结点的链表做操作 要从函数内部改变函数参数的值,一般要用指针,这也就是为何initlist要用二级指针的原因。这个值得深入理解,我认为真正的难点在这里。 而不是后面传l为何起作用,这是你问的地方 2楼 匿名用户 不太明白你说的啥 能...

c语言中的指针问题,求解答,C语言中的指针问题,求解答

1楼 匿名用户 好像有点多此一举,直接使用rsnum就可以了。rsnum 就是数组的首地址了。 如果一定要用指针就是要申明一个指针来赋值。 c语言指针问题,求解答 2楼 伤我中国心 1, 是取值运算符,因为你要判断tt的值的情况,所以要用 2,tt 相当于 tt tt 1 这个是指针向后移动,不需要...

一道C语言指针的题目求大神教教,求大神讲解一下这几道c语言指针题目!!!! 10

1楼 璃梦戏子 p 符号就表示指向某地址 a的地址,同理, q b的地址,这是最基础的, 把p q的地址送入fun函数中,fun后面的 就要用到二级指针, p与 p要等价 二级指针可以用int定义,这也是为什么fun函数中语句 a和 t用int定义,前者用于 p与 q的交换,交换 在你所写fun程序...