C语言里面i 和 i有什么区别,不是很理解。

Python011

C语言里面i 和 i有什么区别,不是很理解。,第1张

前者本次运算为原值后者本次加一运算

先用再加先加再用

前自增和后自增吧

i

是先使用i,用完以后再对i进行

1;i是先对i进行

1,然后在使用i例如:i=3a=i

与i=3b=

i得到的结果分别是:a=3

b=4

前置自加返回的是加1后的值,

所以返回对象本身.

而后置操作是先返回旧的值,

然后在加1.请参考

C

Primer

(第四版)

第五章

表达式

1、赋值顺序不同

++i是先加后赋值;i++是先赋值后加;++i和i++都是分两步完成的。

因为++i是后面一步才赋值的,所以它能够当作一个变量进行级联赋值,++i=a=b,即++i是一个左值;i++的后面一步是自增,不是左值。

形象的理解可以是i++先做别的事,再自己加1,++i先自己加1,再做别的事情。

2、效率不同

比如i=3,b=i++就是说b=3,完成之后让i变成4,b=++i就是先让i++变成4,然后b=4,其中++i比i++效率要高些。一般来说在循环域里面,这两者并没有什么很大的区别,但是要注意其生存周期,以及i值在程序流中的变化。

C语言运算符的特点

1、C语言是一个有结构化程序设计、具有变量作用域(variable scope)以及递归功能的过程式语言。

2、C语言传递参数均是以值传递(pass by value),另外也可以传递指针(a pointer passed by value)。

3、不同的变量类型可以用结构体(struct)组合在一起。

4、只有32个保留字(reserved keywords),使变量、函数命名有更多弹性。

5、部分的变量类型可以转换,例如整型和字符型变量。

6、通过指针(pointer),C语言可以容易地对存储器进行低级控制。

7、预编译处理(preprocessor)让C语言的编译更具有弹性。