i++与++i的区别
i++和++i是C语言运算符,i++是后缀递增的意思,++i是前缀递增的意思。
1、i++是后缀递增的意思,i++是先进行表达式运算,再进行自增运算。把i++的运算过程拆分开,等效于i=i+1可以看到运算结果是一致的。
x = i ++; //先让x变成i的值1,再让i加1
2、++i是前缀递增的意思,++i是先进行自增或者自减运算,再进行表达式运算。运算结果可以发现,仅从i的值来看,++i和i++最终的i值是一样的,都是i自增加了1。
x = ++i; //先让i加1, 再让x变成i的值1
扩展资料
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语言的编译更具有弹性。
参考资料来源:百度百科—C语言运算符
a=i++;则在本语句中a=5
a=++i;则在本语句中a=6
总结来说就是i++先进行赋值,再进行自加运算;而++i是先进行自加运算,再进行赋值
但是,注意在不同编译的环境得到的结果是不一样的,我觉得这问题是应试的
共同点:
1、i++和++i都是变量自增1,都等价于i=i+1
2、如果i++,++i是一条单独的语句,两者没有任何区别
3、i++和++i的使用仅仅针对变量。 5++和++5会报错,因为5不是变量。
不同点:
如果i++,++i不是一条单独的语句,他们就有区别i++ :先运算后增1。如:
1. int x=5;
- int y=x++;
- System.out.println("x="+x+", y="+y);
- //以上代码运行后输出结果为:x=6, y=5
++i : 先增1后运算。如:
- int x=5;
- int y=++x;
- System.out.println("x="+x+", y="+y);
- //以上代码运行后输出结果为:x=6, y=6