为了账号安全,请及时绑定邮箱和手机立即绑定

p[3] 为什么 会等于 (p+=3)

p[4]=101;与p[4];*p=101;不一样吧,p+=3跟p[3]不是一样吧

正在回答

4 回答

p[3]代表的是array[0],是具体的变量,p+=3,这时的P指向array[0]。所以作者在用p[4],*p = 101,后结果变成了101,1,2,1,10,100。这里P[4]只是array[1],并没有把地址指向array[1],所以p[3]并不等于p+=3.可以看看视频代码里面最后一行printf语句,printf("P[%d]=%d",i,p[i])。这里的P[i]和p[3]是一个意思就是具体的某个变量

0 回复 有任何疑惑可以回复我~

p[4]=101代表从初始位置(a的地址就始)以四个字节为一步,向前走4步,到达某个位置,然后对这个位置进行初始化赋值,即把101赋给这个地址所代表的内存空间。p[4],*p=101,p[4]代表从初始位置(a的地址就始)以四个字节为一步,向前走4步,到达某个位置。*p=101,代表此时指针指向的地址(即走了四步后所在位置)并对这个地址所在的内存空间进行初始化,赋值101。p+=3于p=p+3等同,加的是步数,原理跟p[3]一样

1 回复 有任何疑惑可以回复我~

p[4]=101 与p[4]一样

0 回复 有任何疑惑可以回复我~

p[4]=101 与p4[]一样


*p=101,表示p所指向的地址里的内容是101


p+=3 跟p[3]都一样



0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

p[3] 为什么 会等于 (p+=3)

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信