IE盒子

搜索
查看: 110|回复: 2

必须知道的C语言知识细节:i++和++i

[复制链接]

2

主题

7

帖子

10

积分

新手上路

Rank: 1

积分
10
发表于 2022-9-21 21:58:56 | 显示全部楼层 |阅读模式
i++是后缀自增运算符,++i是前缀自增运算符。
正常情况下,执行完毕,两种等价,例如:
int i=1;
i++;
int i=1;
++i;
执行完毕,i的值均为2。
但是在复合的表达式中、函数调用中却有明显区别。
i++,表示先取i的值进行表达式计算或函数调用,最后加法再计算 i=i+1;
++i,表示先加法计算i=i+1,然后在进行表达式计算或函数调用。
例如:
int i = 1;
int k1 = i++; // k1等于1
i=1;
int k2 = ++i; // k2等于2
i = 1;
printf("%d\n", i++); // 输出1,i最后值仍为2
i = 1;
printf("%d\n", ++i); // 输出2
// 定义函数
int add(int i)
{
return i;}
i = 1;
printf("%d\n", add(i++)) ; // 输出 1
i = 1;
printf("%d\n", add(++i)); // 输出 2
完整的示例代码运行:
#include <stdio.h>
int main(void) {
  
  int i = 1;
  int k1 = i++;  // k1等于1
  i=1;
  int k2 = ++i;  // k2等于2
  printf("%d\n%d\n", k1, k2);

  i = 1;
  printf("%d\n", i++); // 输出1,i最后值仍为2
  i = 1;
  printf("%d\n", ++i); // 输出2


// 定义函数
  int add(int i) {
    return i;
  }
  i = 1;
  printf("%d\n", add(i++)) ;  // 输出 1
  i=1;
  printf("%d\n", add(++i));   // 输出 2
  return 0;
}运行结果:
1
2
1
2
1
2其实做为一个学习者,有一个学习的氛围跟一个交流圈子特别重要这里我推荐一个C/C++基础交流583650410,不管你是小白还是转行人士欢迎入驻,大家一起交流成长。



回复

使用道具 举报

1

主题

10

帖子

8

积分

新手上路

Rank: 1

积分
8
发表于 2022-9-21 21:59:46 | 显示全部楼层
nice bro
回复

使用道具 举报

1

主题

5

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2025-2-14 12:32:02 | 显示全部楼层
1v1飘过
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表