将神鬼神吕布: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。
后面的都类似,举一反三。