`
小杨学JAVA
  • 浏览: 900726 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

C语言 i++和++i

 
阅读更多

++i 自增一次,然后返回自身的值
i++ 创建一个匿名变量,自增一次,返回匿名变量的值

如果你能把++运算符看成一个函数,那么会更好理解一点。

//++i
int operator ++(int &i){
i = i + 1;
return i;
}

//i++
int operator ++ (int &i){
int j = i;
i = i + 1;
return j;
}

分享到:
评论

相关推荐

    关于i++和++i以及左值,右值

    在实际编程中,i++和++i的效率差异往往被忽略,因为对于内置类型,在大多数编译器中,i++和++i的效率是相同的,编译器会进行优化。然而,对于自定义类型,尤其是当重载了前缀和后缀的自增运算符时,使用++i通常更为...

    C语言中++i与i++的区别.docx

    在C语言中,`++i` 和 `i++` 是两种常见的自增操作符,它们在编程中的作用是增加变量的值。虽然它们看似相似,但在某些特定情况下,两者的行为是有区别的,这也是C语言初学者经常感到困惑的地方。本文将深入探讨这两...

    关于C语言中++运算的讨论

    在表达式`j=++i+++i+++i`中,`++i`后跟两个`i++`,这里涉及到运算符的结合性和优先级,`i++`只能作为右值,而前缀`++`需要左值,所以这种写法在语法上是不合法的。 总结来说,C语言中的`++`运算符的行为取决于其...

    C语言中++和--运算的一些问题

    - 例如: `i+++j` 被解释为 `(i++) + j` 而不是 `i + (++j)`。 #### 四、实例分析 1. **基本用法**: ```c int i = 5; int j = ++i; // j = 6, i = 6 int k = i--; // k = 6, i = 5 ``` 2. **复合赋值**: ``...

    浅谈c i++与java i++的区别

    但是,c语言和java语言在使用increment运算符时存在着一些区别,这篇文章将深入探讨c语言和java语言中i++的区别。 首先,让我们来看一下c语言中的i++。在c语言中,i++是后缀自增运算符,也就是说,它会先返回变量的...

    C语言+万年历+公历转农历+时钟函数

    C语言提供了标准I/O库,包括`fopen`, `fprintf`, `fscanf`等函数,用于读写文件,实现数据的持久化存储。 5. 单片机编程:由于标签提到了“单片机”,这表明该程序可能设计为在嵌入式环境中运行,如在微控制器上。...

    c语言++放在前面和后面的区别分析

    i被赋值0,i++(后++)并没有输出1。   现在i被赋值0,++i,也就是前++后输出了1。   i被赋值0,前++ 的话,就是自身先加1 就自身赋值变成1 ,后面的i的值都是1了。   i被赋值0,先是后++,后++意思是 自己先被...

    80个C语言题+答案(源码).rar

    【程序3】 题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数... if(x*x==i+100&&y*y==i+268)/*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/  printf("\n%ld\n",i);  } }

    凌阳C语言AD+Timer+测频+按键例程

    在C语言中,这通常涉及配置I/O端口,设置中断,以及处理按键按下和释放的逻辑。开发者需要理解SPCE061的I/O端口结构,知道如何检测并响应按键状态的变化。 在压缩包"My_SPCE061Prj"中,很可能包含了实现这些功能的...

    C语言教学+简单的算术运算和表达式.pptx

    例如,`i = i + 1` 和 `++i` 表面上看起来相同,但在某些情况下,如在表达式中,它们的行为会有所不同。 宏常量(宏定义)是C语言预处理器提供的一种功能,允许用标识符(如`PRICE`)代替数值,实现常量的定义。`#...

    C语言教学+循环控制结构.pptx

    i++; goto loop; } printf("sum=%d", sum); return 0; } ``` `while`语句是一种条件循环,它的执行依赖于一个条件表达式。在每次循环开始前,都会检查该表达式是否为真(非零值)。如果为真,执行循环体内的...

    C语言开发 B+树 数据文件索引程序库

    综上所述,这个C语言开发的B+树数据文件索引程序库提供了一种高效的数据管理和检索解决方案,适用于大数据量、需要快速访问和更新的场景。它的实现涉及到数据结构、算法和磁盘I/O等多个核心IT知识点,是理解数据存储...

    C语言习题+答案,练习题

    C语言习题及答案 C语言是计算机编程语言的一种,广泛应用于操作系统、嵌入式系统、游戏开发、科学计算等领域。以下是C语言习题及答案,涵盖了C语言的基础知识、数据类型、运算符、控制结构、函数、数组、指针等方面...

    1加到100的C语言程序

    `for`循环由三部分组成:初始化(`i = 1`),条件检查(`i ),以及更新(`i++`)。初始化设置循环变量`i`的初始值为1,条件检查确保每次循环前`i`都小于或等于100,更新则将`i`的值增加1,直到达到100为止。 `sum ...

    3n+1问题 C语言实现

    // 输入两个整数i和j for (t = i; t ; t++) { // 遍历i到j之间的每一个整数 n = t; k = 1; // 初始化k为1 while (n != 1) { // 当n不等于1时继续循环 if (n % 2 == 0) { // 如果n为偶数 n = n / 2; // n除以2...

    C语言+epoll+线程池实现的聊天室.zip

    综上所述,这个项目展示了如何利用C语言的底层编程能力,结合epoll的高效I/O管理和线程池的资源调度,构建一个高性能的多用户聊天室。通过这样的实践,开发者可以深入理解网络编程、并发处理和系统优化等关键概念。

    C语言经典100例

    i++) { /* 第一层循环 */ for (j = 1; j ; j++) { for (k = 1; k ; k++) { if (i != k && i != j && j != k) { /* 确保三个数字各不相同 */ printf("%d,%d,%d\n", i, j, k); } } } } getch(); } ``` - **...

Global site tag (gtag.js) - Google Analytics