求讲解输出 #include<stdio.h> void main() { int x; printf("%d\n",(x=5*8,x*2,x+20)); }输出结果为60

C++,\u6025\u6025\u6025\u6c42\u3002\u5206\u6790\u4e0b\u5217\u7a0b\u5e8f\u7684\u8f93\u51fa\u7ed3\u679c\u3002 #include <stdio.h> void fun1( ) {int x=5; printf(\u201cx=%d\n\u201d

#include
void fun1( )
{int x=5;
printf("x=%d\n",x);//===========\u76f4\u63a5\u8f93\u51fax,\u6362\u884c,\u54ea\u6709\u7591\u95ee?
}

fun2(int x)
{printf("x=%d\n",++x);}//==========++x\u8868\u793a\u5148\u628ax\u52a01\u518d\u4f7f\u7528x,\u4e8e\u662fx\u7b49\u4e8e2+1=3

main()
{int x=2;
fun1( );
fun2(x);
printf("x=%d\n",x);//================\u76f4\u63a5\u8f93\u51fax,\u6362\u884c
}

\u5e0c\u671b\u56de\u7b54\u80fd\u5e2e\u5230\u4f60\uff0c\u54ea\u91cc\u4e0d\u6e05\u695a\u518d\u95ee\u3002

\u90a3\u662f\u4e2a\u968f\u673a\u503c\uff0c\u4e00\u822c\u60c5\u51b5\u4e0b\uff0c\u5e94\u8be5\u662f0

“%d”是打印整数,这个应该不用我说了,这个问题主要就是要了解一个“,”运算符(逗号运算符),逗号运算符所在的表达式叫逗号表达式所以(x=5*8,x*2,x+20);这就是一个逗号表达式,你的printf要打印的就是这个表达式的值。逗号表达式的值就是用逗号隔开的最后一个表达式的值。根据逗号运算符的结合性先算x=5*8,此时x=40,然后算x*2,由于此时并没有赋值所以不改变x的值,此时x仍然是40,最后执行x+20也就是整个逗号表达式的值60,所以最后打印出来的是60.此时的x还是40.
可能说的有点墨迹,但是能看明白就好……

运算符的优先级,逗号运算符的特点及赋值语句的优先级
该表达式中涉及赋值运算符“=” 乘运算符“*” 加法运算符“+” 逗号运算符“,”
这四种运算符中优先级最高的是*,所有运算符中逗号运算符的优先级最低,而且如果一个表达式是逗号表达式那么表达式的结果是最右边的那个逗号表达式的结果(逗号运算符的结合性从左到右)
就这个表达式具体分析整个()里的内容是一个表达式,里面又是三个逗号表达式,首先运算5*8=40由于赋值运算符的优先级高于逗号运算符,所以接下来执行x=5*6,即将30赋值给x,此时x的值发生改变,根据逗号运算符的结合性,所以(x=5*8,x*2,x+20)的值等于x+20,所以结果输出是60!!!!

(x=5*8,x*2,x+20)括号里面是一个逗号表达式。逗号表达式是用逗号把多个运算连接起来,处理时严格从左向右处理每个逗号分隔的部分,以最后一个部分的值为整个逗号表达式的值。
所以这个计算过程是
先算x=5*8使x的值为40
再算x*2(这个计算没有任何意义,编译器可能优化掉)
最后算x+20结果为60
整个表达式结果为60,用于输出。

首先明白(x=5*8,x*2,x+20)这里的含义,这里涉及赋值运算和逗号运算,其中赋值运算优先级比逗号运算高,所以,这里先计算x=5*8=40,然后接下来是逗号运算(40,x*2,x+40)目前x的值是40,知道逗号运算,是取最后那个表达式的值作为结果,那么就是x+20=40+20=60.

首先计算x=5*8 ==> x=40
然后计算 x*2 ==> 80,注意x=40
最后计算 x+20 ==> 60
也就是printf("%d\n",(x=40,80,60));根据,运算法则,得到的输出是60

扩展阅读:#include <stdio.h> ... 检测到include错误 请更新 ... #铸铁篦子# ... 有以下程序#include ... #include windows h ... vscode检测到#include ... 伴随状语 including ... #include后面跟路径 ... include 中文翻译 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网