C语言中 a++ a--++a --a 的区别

a++ 表示先赋值再进行加运算
a-- 表示先赋值再进行减运算
++a 表示先进行加运算再赋值
--a 表示先进行减运算再赋值
注:从上面的概念理解很抽象

实例

1. 理解 a++ 代码

# include <stdio.h>
int main(){int a = 10;int c ;// 第一次直接给 c 赋值 c = a = 10,第二次再计算赋值给 a ,即 a = a + 1 = 10 + 1 = 11c = a++;  printf("先赋值再运算 \n");printf("此时 c 的值为:%d", c);printf("此时 a 的值为:%d", a);return 0;
}

计算结果如下:

先赋值再运算
此时 c 的值为:10
此时 a 的值为:11

2. 理解 a-- 代码

# include <stdio.h>
int main(){int a = 10;int c ;// 第一次直接给 c 赋值 c = a = 10,第二次再计算赋值给 a ,即 a = a - 1 = 10 - 1 = 9c = a--;  printf("先赋值再运算 \n");printf("此时 c 的值为:%d", c);printf("此时 a 的值为:%d", a);return 0;
}

计算结果如下:

先赋值再运算
此时 c 的值为:10
此时 a 的值为:9

3. 理解 ++a 代码

# include <stdio.h>
int main(){int a = 10;int c ;// 第一次先计算赋值给 a ,即 a = a + 1 = 10 + 1 = 11,第二次再把 a 的值赋给 c = 11c = ++a; printf("先运算再赋值 \n");printf("此时 c 的值为:%d", c);printf("此时 a 的值为:%d", a);return 0;
}

计算结果如下:

先运算再赋值
此时 c 的值为:11
此时 a 的值为:11

4. 理解 --a 代码

# include <stdio.h>
int main(){int a = 10;int c ;// 第一次先计算赋值给 a ,即 a = a - 1 = 10 - 1 = 9,第二次再把 a 的值赋给 c = 9c = --a; printf("先运算再赋值 \n");printf("此时 c 的值为:%d", c);printf("此时 a 的值为:%d", a);return 0;
}

计算结果如下:

先运算再赋值
此时 c 的值为:9
此时 a 的值为:9

以上是个人的总结理解,还请各位大佬多指点,谢谢~

理解C语言中的a++、a--和++a、--a相关推荐

  1. 一文理解C语言中的volatile修饰符

    一文理解C语言中的volatile修饰符 2019/12/2 FesianXu 前言 volatile修饰符是在嵌入式开发和多线程并发编程中常见的修饰符,理解其对于实践过程非常有帮助,此文参考了[1] ...

  2. c语言static能改变吗,理解c语言中的static

    我们通过程序控制计算机的执行过程,就像是利用咒语来控制魔法精灵.我们要知道了精灵的名字,才能召唤他.这一个个名字便是程序里的符号,我们可以理解为变量和函数. 符号有两个重要的属性 可见性和生命周期(对 ...

  3. java c 简单例子_通过一个简单的例子来理解C语言中的LAPACK调用

    我是LAPACK和C / Fortran接口的初学者 . 我需要在Mac OS-X Lion上使用LAPACK / BLAS解决线性方程和特征值问题 . OS-X Lion提供优化的BLAS和LAPA ...

  4. 理解C语言中的sizeof操作符

    友链 sizeof不是函数,就是一个一元运算符,只不过用起来象个函数而已 对于数据类型,sizeof会计算出该数据类型的大小,比如sizeof(int)就是4 但是如果是指针的话 比如 char* a ...

  5. c语言中什么函数可以作为虚函数,C++语言中的“虚函数”就像C语言中的指针,必须要弄懂的...

    上一节较为详细的讨论了C++语言中基类被派生类继承过程中的内存模型,尤其较为详细的分析了虚函数及其虚表.虚表指针在内存中是如何分布,如何存储的,这对于理解C++语言中的"动态绑定" ...

  6. C语言中.h文件和.c文件如何理解?看完详细解析,小白也能懂!

    简单的说其实要理解C文件与头文件(即.h)有什么不同之处,首先需要弄明白编译器的工作过程,一般说来编译器会做以下几个过程:        1.预处理阶段 2.词法与语法分析阶段        3.编译 ...

  7. c语言中b的作用是什么意思,C语言中是什么意思?ab怎么理解?

    C语言中&是什么意思?a&b怎么理解?以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! C语言中& ...

  8. 关于c语言中EOF用法的理解

    作者:Senlern 转载请注明,原文链接:http://blog.csdn.net/zhang429350061/article/details/8760636 首先看一下EOF的官方解释: 计算机 ...

  9. python语言strip的作用_Python语言中的strip()的理解

    本文主要向大家介绍了Python语言中的strip()的理解,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. 在看到Python中strip的时候产生了疑问 strip() 用于移 ...

最新文章

  1. 制作一个简单的linux
  2. MySQL抓包工具:MySQL Sniffer【转】
  3. vm 安装jdk1.8_JDK 13:VM.events已添加到jcmd
  4. 只有22%的人做对了这道数据分析题,你来试试吗?
  5. python部署到服务器上解析不到模块_python socket模块放到服务器上就跑不了了 -问答-阿里云开发者社区-阿里云...
  6. spring教程(上)
  7. tcc分布式事务框架源码解析系列(四)之项目实战
  8. 如何把HTML背景图片变透明,photoshop怎样把图片背景变透明
  9. 12.逻辑运算符与、或、非、双感叹号、双问号
  10. 最好用的进销存软件测评排名
  11. H5API ---(Web存储-拖拽事件-通信-websocket-geolocation)
  12. linux给root权限命令,linux设置root权限命令
  13. 云计算的三种服务模式:IaaS、PaaS、SaaS
  14. fluent6.3如何制作动画
  15. 解决vscode导致电脑很卡
  16. php监听input,js实时监听input中值变化
  17. Java大牛给初学者的学习路线建议
  18. 这几个 GitHub 项目真带劲
  19. Microsoft Offfice 2010 测试版下载
  20. 总结二:底部导航栏的实现

热门文章

  1. 【蜂口 | AI人工智能】三维人脸重建——龙鹏 深度学习与人脸图像应用连载(十)...
  2. 苹果手机iOS自带原生文档扫描功能,秒杀所有文档扫描软件
  3. [附源码]计算机毕业设计springboot小太阳幼儿园学生管理系统
  4. 2018广告屏蔽软件
  5. 基于ssm考勤管理系统
  6. 四种属性范围(重点)
  7. NLP自然语言处理实战(一):利用分词器构建词汇表
  8. 【人工智能】人工智能是什么?如何入门人工智能?我们为什么要学人工智能?
  9. 由frankmocap得到的.pkl文件转为.bvh或者.fbx
  10. 愿天下有情人都是失散多年的兄妹(25 分)