Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 它是如何工作的?将变量计算为printf的顺序_C - Fatal编程技术网

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标准没有指定它,这取决于你使用什么编译器以及它如何优化你的代码

这回答了你的问题吗?还有:非常感谢!