C语言初学者问题请教!

来源:百度知道 编辑:UC知道 时间:2024/05/14 17:52:23
#include <stdio.h>
void main()
{
int i,j;
i=3;
j=i++; /*先取i的值赋给j,然后自增*/
printf("%d %d\n",i,j);
i=3;
j=++i; /*先自增,然后取i的值赋给j*/
printf("%d %d\n",i,j);
j=(i++)+(++i);
printf("%d %d\n",i,j);
j=(++i)+(++i);
printf("%d %d\n",i,j);
}
刚刚开始学C语言(本人初中学历,有很少一点Qbasic语言知识),在书上看到这个[自增运算符的使用],但不清楚思路!请看以下

j=(i++)+(++i);
printf("%d %d\n",i,j);
j=(++i)+(++i);
printf("%d %d\n",i,j);

麻烦算出结果的朋友把结果和思路告诉在下!

=3;
j=(i++)+(++i); 这个式子以后不要这样写 这是不正确的
首先i++和++i是遵守右运算法则自右至左运算上式子为
j=i++ + ++i=j=i++ + 4注意此时i值为4也就是前面的i也为4,j=4++ +4=8,然后i++ 此时i=5 即

j=(i++)+(++i);
printf("%d %d\n",i,j); 8,5

j=(++i)+(++i);
printf("%d %d\n",i,j); 这个如果是接着上面算的话i=5开始 自右至左运算
j=++i+ ++i首先后面的++i先执行i=6,前面i执行为7 j=13 i=7

只能说无聊 我当初问过我哥(复旦计算机博士) ,我哥竟然也说不记的,我狂晕,这个简单题目相对于一个几年大项目工作 经验的 人 来说忘了 现在 我 才 知道 中国的 考试是 多么地考试化 正如 上面daisha2001 说的写程序的时候没有人会这样。