在C语言中 i++与++i的区别
2015-07-31 13:40
686 查看
#include<stdio.h>
/*
自增运算: i++(后加加) ++i(前加加) i-- --i
对于变量自身来说,无论是i++还是++i,它都可以实现自增运算。
如果它他们在表达式中就有所区别了。
i++是先参与表达式的运算在进行自增运算,比如下面test1()里面的代码
int a = i++; 可以理解为先进行a = i;然后进行 i = i+1运算,所以test1的结果为
a = 5; i = 6;
++i是先进行自增运算,在参与到表达式的运算中。比如test2()里面的代码
int a = ++i;可以理解为 先进行 i = i+1的运算,在进行 a = i;运算,打印结果为
a = 6, i = 6;
*/
void test1()
{
int i = 5;
int a = i++;
printf("a = %d ,i = %d\n",a,i);
}
void test2()
{
int i = 5;
int a = ++i;
printf("a = %d, i = %d\n", a, i);
}
int main()
{
test1();
test2();
return 0;
}
/*
下面的代码的打印结果是 b = 12 a = 7
原因是因为 (++a)是先进行自加,所以此时a = 6;
++a 是先参与表达式的运算,所以 b = a + a = 12,参与完表达式的运算之后再进行自加
a = a+1 = 7;
*/
#include <stdio.h>
int main(int argc, const char * argv[])
{
int b;
int a = 5;
b = (++a) + (a++);
printf("b=%d, a=%d\n", b, a);
return 0;
}
相关文章推荐
- C语言的inline
- C#与VC++数据类型对应关系
- c语言中的宏,#号##号,可变参数
- 动态规划之Jury Compromise
- C语言字节对齐
- RPG游戏
- 分球问题(DP/C++)
- C++ Virtual详解
- OC语言(二)
- C++获取一个目录下的所有文件
- 关于C++ const 的全面总结
- c++ 计蒜客第21题最大子阵列
- 函数调用时函数栈状态分析
- 黑马程序员---iOS基础---C语言中的位运算,文件操作等问题
- C/C++内存泄漏及检测
- c++ 计蒜客第22题 排序后数组删除重复数字
- 指针的几个重要概念
- Ubuntu下如何编译C++11的代码
- C语言——计算文件大小(一)
- C语言程序的编译和链接过程