我正在努力了解以下操作:
B是变量,Pt1和Pt2指向&B
递减是在受影响之后完成的,因此根据我的逻辑,应该为68,但我的IDE给我69,有人可以解释吗?
提前致谢。
最佳答案
您提供的代码会产生不确定的行为!除去指针方面,您实际上是在这样做:
B = B--;
由于要为
B
分配69
的值,然后递减B
,因此无法始终解决此问题。那么,给出答案的是:分配还是递减?在您的平台/ IDE中,编译器使用“临时”变量完成了以下操作:
// Initial value of B is 69
temp = B--; // temp is 69 and B is now 68
B = temp; // B now has the value of 69!
但是,您不能依靠这种“解释”-在不同的编译器之间,或者甚至在相同的编译器的不同位置使用相似的代码!
PS:顺便说一句,您应该以文本形式发布代码,并设置为代码块格式。
关于c - 引用相同地址的算术指针,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58389656/