printf是否会更改变量?

rya*_*ank -8 c printf increment

我不确定在printf语句中增加变量是否将有价值的东西保存为变量。

int x = 0;

printf("x=%d\n", ++x);
printf("x=%d\n", x);
Run Code Online (Sandbox Code Playgroud)

输出是

x=1
x=0
Run Code Online (Sandbox Code Playgroud)

要么

x=1
x=1
Run Code Online (Sandbox Code Playgroud)

我从未学习过C的基础知识,想知道它如何与C ++匹配。

我确实了解pre / post的增量,但是我担心如果在函数范围内对其进行增量操作,则在第一个printf()中执行++ x不会保存。

Gop*_*opi 5

输出将为1。

您的表情++x将是

x = x+1;
Run Code Online (Sandbox Code Playgroud)

在两个printf()你都1

所以x的值在这里用pre-increment运算符修改,printf()在第二行中打印出x的新值,即1

printf()只是打印x它的值不会修改您的变量

注意pre-increment和post-increment之间的区别。

使用post-increment时,您将进入0第一个printf(),因为的值x是由printf()'s %d和提取的,后来又x得到了增量,导致x第二个prinf()的值为1