这两个语句在执行上有区别吗?

来源:百度知道 编辑:UC知道 时间:2024/06/07 03:27:23
for(int x=2;x<8;++x)
{.....}

for(int x=2;x<8;x++)
{.....}

没有区别,打印如下
x=2
x=3
x=4
x=5
x=6
x=7

x=2
x=3
x=4
x=5
x=6
x=7


第一句是在执行x自加之前先加1
第二句是执行x自加之后再加1
基本功啊~~呵呵
一楼的不懂就不要乱说 误人子弟人品真差

当然有区别了
第一个循环,x在使用前就加1了,就是从3开始
第二个循环,x在使用后才加去,就是从2开始,然后每次使用后加1

语义上没有任何区别~~

但是就效率而言前者要比后者高一些

这是由于++前置 和++后置运算符重载函数的区别

++前置 运算符重载函数返回的是一个引用类型 &

++后置 运算符重载函数返回值是一个操作数本身类型的值

显然前者效率高 因为return时不需要另外分配一个副本内存空间

另外为了区分两个函数 ++后置运算符重载函数会多出一个没有用的int参数

这也是一个冗余

所以在for循环中++x的效率是要比x++的效率要高的

效率有区别语义没区别 不过似乎大家更习惯用x++

如果不是for循环中 在表达式里++x和x++语义是有区别的 相信这个你是清楚的

前置加加与后置加加在执行上有区别!

但就你写的哪两个语句来讲,执行结果不会有区别。如果是如下的语句的话,区别就大了!
for(int x=2; ++x<8;) //此句中先执行x=x+1,再判断x是否小于8——如是第一次执行的话,相当于判断3是否小于8
{……}
for(int x=2; x++<8;) //此句中先判断x是否小于8,再执行x=x+1——如果是第一次执行的话,判断的是2是否小于8,之后x的值为3
{……}

随便告诉lz,如果你学c++的话就很清楚这二者的区别了——运算符