我正在努力了解以下操作:

B是变量,Pt1和Pt2指向&B

c - 引用相同地址的算术指针-LMLPHP

递减是在受影响之后完成的,因此根据我的逻辑,应该为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/

10-12 17:29