C printf()中的语句是从右向左执行的吗?

C printf()中的语句是从右向左执行的吗?,c,logic,compiler-optimization,C,Logic,Compiler Optimization,如果C编译器是从左到右运行的,那么为什么下面的代码的输出是从右到左执行的 int x = 15 ; printf("%d %d %d", x!=15, x=20, x<30); intx=15; printf(“%d%d%d”,x!=15,x=20,x首先,这些是表达式而不是语句 其次,参数的求值顺序是未指定的。您无法确定参数的求值顺序,您的代码将导致错误 有关求值顺序和排序的更多信息,请参见,例如:首先,这些是表达式而不是语句 其次,参数的求值顺序是未指定的。您无法确定参数的求值顺

如果C编译器是从左到右运行的,那么为什么下面的代码的输出是从右到左执行的

int x = 15 ; 
printf("%d %d %d", x!=15, x=20, x<30); 
intx=15;
printf(“%d%d%d”,x!=15,x=20,x首先,这些是表达式而不是语句

其次,参数的求值顺序是未指定的。您无法确定参数的求值顺序,您的代码将导致错误

有关求值顺序和排序的更多信息,请参见,例如:

首先,这些是表达式而不是语句

其次,参数的求值顺序是未指定的。您无法确定参数的求值顺序,您的代码将导致错误


有关求值顺序和排序的更多信息,请参见,例如:

否,顺序未指定。您所做的是未定义的行为。为了消除任何潜在的混淆,它们可能在您的系统上以特定的顺序执行,但也可能在另一台计算机或另一台编译器上以任何其他顺序执行。“如果C编译器从左到右工作,那么为什么…?”这就像说“如果钱是免费的,那么为什么当我去银行要一些时,他们没有给我?”:-)不,顺序是未指定的。您所做的是未定义的行为。只是为了澄清任何潜在的混淆-它们可能在您的系统上以特定的顺序执行,但它们可能在另一台计算机或另一个编译器上以任何其他顺序执行。“如果C编译器从左到右运行,那么为什么…?”这就像说如果钱是免费的,那为什么当我去银行要一些钱时,他们没有给我?”:-)