关于C语言的简单问题???

来源:百度知道 编辑:UC知道 时间:2024/06/17 01:21:43
#include <stdio.h>
void main()
{
int i,j,m,n;
i=8;
j=9;
m=++i;
n=j++;
printf("%d,%d,%d,%d\n",i,j,m,n);
}
运行的结果是 9,11,9,10
为什么i是9呢,不是8吗?还有++j,++i,是 什么 意思,搞不明白啊,书上也没说的.

#include <stdio.h>
void main()
{
int i,j,m,n;
i=8;
j=9;
m=++i;
n=j++;
printf("%d,%d,%d,%d\n",i,j,m,n);
}

运行结果其实是:9,10,9,9

++i的意思就是i自加1,相当于
i = i+1;
所以i = 9;

另外,i++和++i是有区别的。

++i是指i先自加然后再参与其他运算
而i++则相反,先参与其他运算在自加。

以你的例子来说

m=++i; i先自己+1,即i现在等于9,在赋值给m

n=j++; 则是先把j(此时还是9)赋值给n,然后j再自加1(变成10)

了解了吗?

因为
i=8、j=9
m=++i 就等于i先加1 再赋给m
1+i=1+8=9;
n=j++ 先把j赋值给n 所以就先把j赋给n 则n=j=9
所以运行的结果是 9,11,9,10
++j 就是先加1 再赋值
++i 也是一样的 只是变量不懂
j++ 就是先赋值再加1