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的值。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: