C语言菜鸟基础教程之a++与++a

 更新时间:2017年10月03日 10:42:55   作者:翡翠森林Z  
很多同学在学习c语言的时候是不是会碰到a++和++a都有甚么作用啊。今天我们就来探讨下

(一)a++

在C语言或其它语言中,++符号表示“自加”,就是变量在原来的基础上加1。
例1:

a = 0;
a++;

则此时a的值为1。

同样的道理,--表示”自减”。

例2:

a = 100;
a--;

则此时a的值为99。

注意,程序语言里没有”自乘”和”自除”的概念。

验证程序:

#include <stdio.h>

int main()
{
  int a = 0; // 给a赋值
  a++;
  printf("After ++, a = %d\n", a);
  
  a = 100;  // 重新给a赋值
  a--;
  printf("After --, a = %d\n", a);
  
  return 0;
}

运行结果:

After ++, a = 1
After --, a = 99

(二)++a

除了a++表示自加外,++a也表示自加。同理--a表示自减

验证程序:

#include <stdio.h>

int main()
{
  int a = 0; // 给a赋值
  ++a;
  printf("After ++, a = %d\n", a);
  
  a = 100;  // 重新给a赋值
  --a;
  printf("After --, a = %d\n", a);
  
  return 0;
}

运行结果:

After ++, a = 1
After --, a = 99

(三)a++与++a的区别

既然a++与++a都是让a自加,那么二者是否完全一样呢?
先看一个程序:

#include <stdio.h>

int main()
{
  int a = 0;
  printf("a = %d\n", a++);
  printf("a = %d\n", a);
  printf("a = %d\n", ++a);
  printf("a = %d\n", a);
  
  return 0;
}

运行结果:

a = 0
a = 1
a = 2
a = 2
从运行结果可以看出,a++和++a是有区别的:
a++是先读取a的值,再让a的值增加1;
++a是先让a的值增加1,再读取a的值。

您可能感兴趣的文章:

相关文章

  • C语言实现小小圣诞树源代码

    C语言实现小小圣诞树源代码

    圣诞节当然要有个圣诞树了,今天给你们用C语言编写一个雪夜圣诞树,这篇文章主要给大家介绍了关于C语言实现小小圣诞树的相关资料,需要的朋友可以参考下
    2023-12-12
  • c语言常见图片格式判断实例

    c语言常见图片格式判断实例

    这篇文章介绍了c语言常见图片格式判断实例,有需要的朋友可以参考一下
    2013-09-09
  • opencv检测直线方法之投影法

    opencv检测直线方法之投影法

    这篇文章主要为大家详细介绍了opencv检测直线之投影法的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-12-12
  • 解析C++类内存分布

    解析C++类内存分布

    本篇文章介绍了C++类内存分布结构,我们来看看编译器是怎么处理类成员内存分布的,特别是在继承、虚函数存在的情况下
    2021-06-06
  • C++的字符串分割函数的使用详解

    C++的字符串分割函数的使用详解

    本篇文章主要介绍了C++的字符串分割函数,主要用strtok、STL、Boost进行字符串分割,有需要的可以了解一下。
    2016-11-11
  • C++无try-catch的异常捕获示例详解

    C++无try-catch的异常捕获示例详解

    这篇文章主要为大家介绍了C++无try-catch的异常捕获示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • C++ 位图及位图的实现原理

    C++ 位图及位图的实现原理

    位图实际上就是一个数组,因为数组有随机访问的功能,比较方便查找,这个数组一般是整形,今天通过本文给大家分享c++位图的实现原理及实现代码,感兴趣的朋友跟随小编一起看看吧
    2021-05-05
  • C++ 详细讲解对象的构造顺序

    C++ 详细讲解对象的构造顺序

    对象的构造往往和构造函数会牵扯在一起,构造函数的函数可能会由非常复杂的逻辑所组成,不同类的构造函数的程序逻辑很可能是相互依赖的,当这种相互依赖一旦成立,那么对象的构造顺序很可能导致难以调试的Bug出现
    2022-04-04
  • C字符串操作函数实现方法小结

    C字符串操作函数实现方法小结

    这篇文章主要介绍了C字符串操作函数实现方法,实例总结了C语言字符串操作的相关技巧,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • C++ std::initializer_list 实现原理解析及遇到问题

    C++ std::initializer_list 实现原理解析及遇到问题

    这篇文章主要介绍了C++ std::initializer_list 实现原理勘误,本文通过源码解析给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-02-02

最新评论