-- , ++这东西搞糊涂了
int i=8;printf("%d\n",++i);
printf("%d\n",--i);
printf("%d\n",i++);
printf("%d\n",i--);
printf("%d\n",-i++);
printf("%d\n",-i--);
++8=9很对 --8怎么程序显示等于8 8-1=8?
8++=8 那8--应该也是=8 程序显示=9
-8++=-8 -8--=-9?
我用的是简化版请问是不是程序出问题了{:5_94:}
你的太乱了
我一步步来 先是 ++i 前置 先运算后输出 运算:8+1==9 输出 9 (注意,这时i==9了)
然后 --i 前置 先运算后输出 运算:9-1==8 输出8 (这时i==9)
然后 i++ 后置 先输出i再运算 输出8 运算: 8+1==9 (这时i==9)
然后 i-- 后置 先输出i再运算 输出9 运算:9-1==8 ( 这时i==8)
然后 -i++ 后置 先输出i再去算 输出-8 运算:-8+1==-9 (这时i==-9)
最后一步 -i-- 也是后置 先输出 输出 -9 运算 : -9-1==-8 (这时因为没有printf 输出语句i最终值是-8 没有输出) 所以是9 8 8 9 -8 -9
从第二句语句开始,++i=9,接着--i=8没错啊 。 本帖最后由 牡丹花下死做鬼 于 2013-2-15 23:47 编辑
首先 i =8
++i 先 i+1 i=9 输出9
--i先 i-1 i=8 输出8
i++ 先输出 i = 8 再计算 i = 9
i-- 先输出i=9 在计算 i = 8
-i++先输出 i=-8 在计算 i=-9
-i-- 先输出 i = -9 在计算 i=8
所以输出应该是 98 8 9 -8 -9 ++8=9很对 --8怎么程序显示等于8
这句就有问题,进行运算的是i,不是8,只不过i的初始值为8
所以++i为9,这时候i为9,--i自然为8
至于8++=8 那8--应该也是=8 也是错的
i++为8,那是显示的时候为8,在显示完之后i自增为9
随后i--也是先显示9,然后i自减为8 自增自减操作的是变量,不是常量
就像你的程序里的,操作的是i,不是对8进行操作 小布丁 发表于 2013-2-16 00:14 static/image/common/back.gif
自增自减操作的是变量,不是常量
就像你的程序里的,操作的是i,不是对8进行操作
话说小布丁大哥为什么 你身为超级版主 技术值只有 1难道是去换鱼币啦?? 牡丹花下死做鬼 发表于 2013-2-16 19:50 static/image/common/back.gif
话说小布丁大哥为什么 你身为超级版主 技术值只有 1难道是去换鱼币啦??
回答问题不多哈~ 你定义的int i是全局变量,当你执行++i的时候,全局变量的值就变为9了。下一次进行的运算就是按照i=9来计算的。所以依次类推。自增自减符号在左边的时候是先运算后打印。在右边的时候是先打印再运算...
第一个是++i
第二个是--(++i)
第三个是(--(++i))++
依次类推..... 灰烬 发表于 2013-2-15 19:49 static/image/common/back.gif
你的太乱了
我一步步来 先是 ++i 前置 先运算后输出 运算:8+1==9 输出 9 (注意, ...
倒数第二步计算完i等于9,不是-9. 执行 ++或者-- 的时候 i的值会变的 要打印你那个 必须每句printf前面都初始化i=8; 灰烬 发表于 2013-2-15 19:49 static/image/common/back.gif
你的太乱了
我一步步来 先是 ++i 前置 先运算后输出 运算:8+1==9 输出 9 (注意, ...
第二个然后 --i 前置 先运算后输出 运算:9-1==8 输出8 (这时i==9)????i==9????????????????? 本帖最后由 feizixiao 于 2013-3-18 23:39 编辑
int i=1;
printf("%d\n",++i); //++在前,先计算++之后的值,再输出. 这时候i=2
printf("%d\n",i++);//++在后,先输出,在计算++的值 这时候i=2
printf("%d\n",i); //输出i=3
//--的话应该会推论了吧?
每次++ --后i的值都变化 围观。。。。。。。 帮顶 慢慢理解就好!
页:
[1]