胶州配载:C语言的高手 进来下~~~~~~~~~~`````

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/05 10:00:00
昨天 C语言我学到了 赋值语句 后来我看到 自增自减运算符 有一个例题我看不懂 我算的结果和书上的都不一样迷糊! 你帮我 看看哈 最好可以把它的运算步奏 写给我 ~~~谢谢 你了

程序一;
main()
{
int j,i=3;
j=(i++)+(i++)+(i++);
printf("%d",j);
} 结果为什么是9

程序二 ;
main()
{
intj,i=3;
j=(++i)+(++i)+(++i);
printf("%d",j);
结果是18 我怎么算 也不是18 啊 迷糊

程序三

main()
{
int a=100;
printf("a++=%d\n",a++); ← 这些什么意思啊
printf("++a=%d\n",++a); 我看每个程序都有
printf("a--=%d\n",a--); 这些东西 但每个
printf("--a=%d\n",--a); 意思都不一样,
输出结果 我用什么方法一看就
a++=100 知道这些是什么意思
++a=102 呢???
a--=100
--a=102

为什么会是这个结果啊 我不懂什么, 意思

以上的问题 希望 你帮我 看看

在告诉我为什么哈 谢谢你 哟

//程序一:
//等价与
i++;
i++;
i++;
j=i+i+i;

//程序二:
//等价与
j=i+i+i;
i++;
i++;
i++;

//程序三
{
int a=100;
printf("a++=%d\n",a++); ← 这些什么意思啊
// 等价与:
//printf("a++=%d\n",a);
//a++;
printf("++a=%d\n",++a); 我看每个程序都有
// 等价与:
//a++;
//printf("a++=%d\n",a);

printf("a--=%d\n",a--); 这些东西 但每个
// 等价与:

//printf("a--=%d\n",a);
//a--;
printf("--a=%d\n",--a); 意思都不一样,
// 等价与:
//a--;
//printf("a--=%d\n",a);

输出结果 我用什么方法一看就
a++=100 知道这些是什么意思
++a=102 呢???
a--=102
--a=100

程序一 j=(i++)+(i++)+(i++); 是3+3+3=9 而i最后变为6
程序二 j=(++i)+(++i)+(++i); 是i先经过3个自加变为6,然后6+6+6=18
程序三
printf("a++=%d\n",a++); 先输出i为100 再自加1 变为101
printf("++a=%d\n",++a); 先自加1 变为102输出
printf("a--=%d\n",a--); 先输出 102 再自减1 变为101
printf("--a=%d\n",--a); 先自减1 输出100

++ -- 在变量的前面就是先给变量+1或-1然后再返回值,相反如果在变量的后面就是先返回值然后再给变量+1或-1
比如第一个程序:
int j,i=3;
j=(i++)+(i++)+(i++);
printf("%d",j);
++在i的后面,先给其返回值i=3,所以j=3+3+3=9,之后再给i加1加1加1,i变为6。
后面的都类似,举一反三。