【发布时间】:2018-12-03 03:20:58
【问题描述】:
我们来看第一个代码:
以下代码显示n=10的值:
#include<iostream>
int main()
{
int n=10;
int*p=&n;
*p++;
std::cout<<n;
return 0;
}
以下代码显示n=11的值:
#include<iostream>
int main()
{
int n=10;
n++;
std::cout<<n
return 0;
}
【问题讨论】:
-
看起来好像只有存储在 p 中的地址增加了。尝试在取消引用的指针周围放置一些括号
-
还应该指出
*(p++)不可移植,因为您正在修改指向不属于数组的内存的指针(它甚至可能是未定义的行为,不太确定,无论如何您除非你真的知道自己在做什么,否则永远不要这样做)。
标签: c++ pointers post-increment