荷叶母亲公开课ppt:C达人帮忙 初学着很简单的程序 关于TC编译系统的问题

来源:百度文库 编辑:神马品牌网 时间:2024/04/30 03:17:51
第一个程序
main()
{int i,j,m,n;
i=8;
j=10;
m=++i;
n=j++;
printf("%d,%d,%d,%d",i,j,m,n);
}

第二个
main()
{int i,j;i=3;
j=i++;
printf("%d,%d",j,i);
}
第一个用TC输出是9 11 9 10
第二个是 3 4
我看如果承认第一个 那计算顺序应该是从右向左
那么第二个结果应该是4 3啊
这个自己来思考的话到底该怎么算???

怎么想也想不通
跪求达人解释`~~~
感激涕零。。

果然!果然!~
是我自己还没有完全理解~

原因很简单拉
偶BT下载教学视频 相当与自学了
偶也小的这样比较难
但是偶相信努力就会有结果~
真的非常感激各位的讲解~

多亏lindegong和taq1979
让我通过liyi830813
很白话的讲解 懂了~!
谢谢1

结果是对的
main()
{int i,j,m,n;
i=8;
j=10;
m=++i;
n=j++;
printf(\"%d,%d,%d,%d\",i,j,m,n);
}
这是第一个程序
结果j=11 n=10
可以看出J先将原值10赋给了N才自加的 这是j++的运算顺序
同理
main()
{int i,j;i=3;
j=i++;
printf(\"%d,%d\",j,i);
}
其中j=i++
则i先将3赋给了j,然后自加 所以结果是j=3、i=4

j=++i 则结果反过来了 这时是I先自加然后赋值给J 则结果是4、4

菜鸟的一点理解
希望是对的

哈哈,是对的啦!
这个题目的关键在于 ++ 运算符上
一般有两种情况,前缀和后缀,
前缀:使用前自增
后缀:使用后自增
e.g:
i = 0;
a = 0;
a = i++; 相当于 a = i;i = i+1;
a = ++i; 相当于 i = i + 1;a = i
这不是什么自右向左的问题!

第一个也是!!

楼主可能把printf里的i,j看反了。i++后i为4,j等于3,printf的是j,i,当然是3,4

非常简单啊。
注意:第二个printf("%d,%d",j,i); 是j 在前 i 在后

各楼主说得对,这是对的。
main()
{int i,j;i=3; 定义i=3、j
j=i++; j=i=3,同时使用后i=4
printf("%d,%d",j,i); 先输出j,故显示为3。再输出i,故
显示为4,合起来就是3 4
}
两个都承认,可能是你对i++与++i的区别没有理解。例如:j=i++相当于j=i;i=i+1而j=++i相当于i=i+1;j=i