C 它是如何工作的?将变量计算为printf的顺序
偶然发现这样一个难题: 屏幕上将显示什么C 它是如何工作的?将变量计算为printf的顺序,c,C,偶然发现这样一个难题: 屏幕上将显示什么 #include <stdio.h> void main() { int x = 10; printf("x = %d, y = %d", x--, x++); } 奇怪的是,屏幕上显示的是:x=11,y=10; 但是,如何??< /P> < P>参数评估顺序在C和C++中都是不确定的。重要的是避免任何代码传递相互依赖的表达式,这些表达式必须在调用函数之前进行求值。这是一个严格的否定 int f1() { printf("
#include <stdio.h>
void main()
{
int x = 10;
printf("x = %d, y = %d", x--, x++);
}
奇怪的是,屏幕上显示的是:x=11,y=10;
但是,如何??< /P> < P>参数评估顺序在C和C++中都是不确定的。重要的是避免任何代码传递相互依赖的表达式,这些表达式必须在调用函数之前进行求值。这是一个严格的否定
int f1() { printf("F1") ; return 1;}
int f2() { printf("F2" ) ; return 1;}
printf("%d%d", f1(), f2()) ;
您可以通过添加几个包含print语句的函数进行签出,并将其传递给一个函数以观察其实际操作。你不知道会发生什么,C标准没有指定它,这取决于你使用什么编译器以及它如何优化你的代码 这回答了你的问题吗?还有:非常感谢!