指针中*p+4等于*(p+4)吗

地下法庭判xx 1年前 已收到1个回答 举报

hnzyq2031376 幼苗

共回答了12个问题采纳率:100% 举报

肯定不等于! 如:int a[6] = {0 , 1 , 2 , 3 , 6 , 7}; int* p = a; *p+4 = 第一个元素值+4 = 0+4 = 4
*(p+4) = 首位地址往后偏移4个 = 第5个元素的值 =6

1年前 追问

8

地下法庭判xx 举报

那为什么*p++等于*(p++)?那*p+1等于*(p+1)吗?

举报 hnzyq2031376

*p++是先计算p++ 由于是后加加,所以地址还是首位 然后*就是取这个地址的值就是 = 0; *p+1是先计算*p,*p是首元素的值 = 0; 再计算+1, 最终等于 = 1 *p++ 不是等于*p+1的! 而*p++ 和*(p++) 括号没有意义的 都是先计算p++ 所以这2个是相等的
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 17 q. 0.453 s. - webmaster@yulucn.com