main( )  { int n; ( n=6*4,n+6),n*2; printf(“n=%d\n”,n); }  此程序的输出结果是? 要解析

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/02 17:01:44
main( )  { int n; ( n=6*4,n+6),n*2; printf(“n=%d\n”,n); }  此程序的输出结果是? 要解析

main( )  { int n; ( n=6*4,n+6),n*2; printf(“n=%d\n”,n); }  此程序的输出结果是? 要解析
main( )  { int n; ( n=6*4,n+6),n*2; printf(“n=%d\n”,n); }  此程序的输出结果是? 要解析

main( )  { int n; ( n=6*4,n+6),n*2; printf(“n=%d\n”,n); }  此程序的输出结果是? 要解析
这是关于操作符的问题,C语言的第一二章!


一句话:和逗号有关,先单独试试n=3,4;(n=4)

一下是详细分析!


和编译器有一定的关系.
这里以VC来说了.


这一句的总值是48,
用printf("%d",(( n=6*4,n+6),n*2));可得出来!


而单单变量n的值是24.也就是楼主的代码得出的结果
分析:
VC编译器赋值是从右往左的!
先括号优先!
括号里的也是从右往左!
->n+6=6;(n不变,还是初始值0
->n=6*4;(不用说,n=24);
还是从右往左(包括逗号)
->(24,6)=6;(这时总值为6)
括号外面的
n*2=48;(n不变,还是24)
最后
24,48=48;

楼主可以试试下面的代码!
main()
{
int a,b,c;
a=(3,5),4;
b=8;
c=a,b;
printf("%d\n",(a,b));
getch();
}