• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > C语言自增(++)和自减(--)

C语言自增(++)和自减(--)

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2022-04-30

匿名通过本文主要向大家介绍了等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
一个整数类型的变量自身加 1 可以这样写:

a = a + 1;

或者

a += 1;

不过,C语言还支持另外一种更加简洁的写法,就是:

a++;

或者

++a;

这种写法叫做自加或自增,意思很明确,就是每次自身加 1。

相应的,也有a--和--a,它们叫做自减,表示自身减 1。

++和--分别称为自增运算符和自减运算符,它们在循环结构(后续章节会讲解)中使用很频繁。

自增和自减的示例:
#include <stdio.h>int main(){    int a = 10, b = 20;    printf("a=%d, b=%d\n", a, b);    ++a;    --b;    printf("a=%d, b=%d\n", a, b);    a++;    b--;    printf("a=%d, b=%d\n", a, b);    return 0;}
运行结果:
a=10, b=20
a=11, b=19
a=12, b=18

自增自减完成后,会用新值替换旧值,将新值保存在当前变量中。

自增自减的结果必须得有变量来接收,所以自增自减只能针对变量,不能针对数字,例如10++就是错误的。

需要重点说明的是,++ 在变量前面和后面是有区别的:
  • ++ 在前面叫做前自增(例如 ++a)。前自增先进行自增运算,再进行其他操作。
  • ++ 在后面叫做后自增(例如 a++)。后自增先进行其他操作,再进行自增运算。

自减(--)也一样,有前自减和后自减之分。

下面的例子能更好地说明前自增(前自减)和后自增(后自减)的区别:
#include <stdio.h>int main(){    int a = 10, b = 20, c = 30, d = 40;    int a1 = ++a, b1 = b++, c1 = --c, d1 = d--;       printf("a=%d, a1=%d\n", a, a1);    printf("b=%d, b1=%d\n", b, b1);    printf("c=%d, c1=%d\n", c, c1);    printf("d=%d, d1=%d\n", d, d1);       return 0;}
输出结果:
a=11, a1=11
b=21, b1=20
c=29, c1=29
d=39, d1=40

a、b、c、d 的输出结果相信大家没有疑问,下面重点分析a1、b1、c1、d1:
1) 对于a1=++a,先执行 ++a,结果为 11,再将 11 赋值给 a1,所以 a1 的最终值为11。而 a 经过自增,最终的值也为 11。

2) 对于b1=b++,b 的值并不会立马加 1,而是先把 b 原来的值交给 b1,然后再加 1。b 原来的值为 20,所以 b1 的值也就为 20。而 b 经过自增,最终值为 21。

3) 对于c1=--c,先执行 --c,结果为 29,再将 29 赋值给c1,所以 c1 的最终值为 29。而 c 经过自减,最终的值也为 29。

4) 对于d1=d--,d 的值并不会立马减 1,而是先把 d 原来的值交给 d1,然后再减 1。d 原来的值为 40,所以 d1 的值也就为 40。而 d 经过自减,最终值为 39。

可以看出:a1=++a;会先进行自增操作,再进行赋值操作;而b1=b++;会先进行赋值操作,再进行自增操作。c1=--c;和d1=d--;也是如此。

为了强化记忆,我们再来看一个自增自减的综合示例:
#include <stdio.h>int main(){    int a = 12, b = 1;    int c = a - (b--);  // ①    int d = (++a) - (--b);  // ②    printf("c=%d, d=%d\n", c, d);    return 0;}
输出结果:
c=11, d=14

我们来分析一下:
1) 执行语句①时,因为是后自减,会先进行a-b运算,结果是 11,然后 b 再自减,就变成了 0;最后再将a-b的结果(也就是11)交给 c,所以 c 的值是 11。

2) 执行语句②之前,b 的值已经变成 0。对于d=(++a)-(--b),a 会先自增,变成 13,然后 b 再自减,变成 -1,最后再计算13-(-1),结果是 14,交给 d,所以 d 最终是 14。
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 2017-05-28C语言 栈的表示和实现详细介绍
  • 2017-05-28简明的C++函数指针学习教程
  • 2022-04-30C语言标识符、关键字、注释、表达式和语句
  • 2017-05-28VC++ 使用 _access函数判断文件或文件夹是否存在
  • 2017-05-28C++实现图的邻接表存储和广度优先遍历实例分析
  • 2017-05-28C++中strcpy函数的实现
  • 2017-05-28C++制作俄罗斯方块
  • 2017-05-28Windows进程崩溃问题的定位方法
  • 2017-05-28基于内核线程的创建、使用和退出以及延时宏的补充说明介绍
  • 2017-05-28c++实现MD5算法实现代码

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 探讨:C++中函数返回引用的注意事项
    • C语言实现选择排序、冒泡排序和快速排序的代码示例
    • 浅析C和C++函数的相互引用
    • 使用C语言判断英文字符大小写的方法
    • 用C# 控制Windows系统音量的实现方法
    • c语言 字符串转大写的简单实例
    • C++中的异或运算符^的使用方法
    • VC实现A进程窗口嵌入到B进程窗口中显示的方法
    • OpenCV 2.4.3 C++ 平滑处理分析
    • VC程序设计小技巧20例

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有