指针变量在cout函数中不起作用 我编写了C++代码来检查变量增量(添加的截图)。在第13行,当我在打印功能中使用“++x”打印x和y的值时。我得到的值不相等,但内存地址相同。 在第17行中,我将y增加为++y,得到了预期的相等ans (添加了屏幕截图)

指针变量在cout函数中不起作用 我编写了C++代码来检查变量增量(添加的截图)。在第13行,当我在打印功能中使用“++x”打印x和y的值时。我得到的值不相等,但内存地址相同。 在第17行中,我将y增加为++y,得到了预期的相等ans (添加了屏幕截图),c++,pointers,increment,C++,Pointers,Increment,第13行中没有得到意外ans的原因是什么 我的代码: #包括 使用名称空间std; int main() { int x=7,&y=x; 你是在假设 cout << ++x << " " << y << endl; 您将获得您期望的输出 此外,新手有时会认为++x意味着x将在任何其他内容之前递增。但这也不是真的,++x只是意味着x的值在获取x的值之前递增,而不是在任何其他内容之前。将代码作为文本而不是图像发布。\35;space std;int

第13行中没有得到意外ans的原因是什么

我的代码:

#包括
使用名称空间std;
int main()
{
int x=7,&y=x;

你是在假设

cout << ++x << " " << y << endl;
您将获得您期望的输出


此外,新手有时会认为
++x
意味着
x
将在任何其他内容之前递增。但这也不是真的,
++x
只是意味着
x
的值在获取
x
的值之前递增,而不是在任何其他内容之前。

将代码作为文本而不是图像发布。
\35;space std;int main(){int x=7,&y=x;请回答这个问题,它在注释部分是不可读的。原始代码不是也有未定义的行为吗?参见草案n4659,4.6/17(was 1.9/15 in):如果内存位置[x]上的副作用[the++]未排序[哪些子表达式像“P.E.S.你可能是对的,但是我认为确切的诊断取决于C++的版本,所以我放弃了跟踪。我认为(不要引用我),OP的代码用C++ 17定义得很好。
cout << ++x << " " << y << endl;
++x;
cout << x << " " << y << endl;