【C】复合赋值和递增递减

复合赋值

5个算术运算符,+-*/%,可以和赋值运算符“=”结合起来,形成复合赋值运算符“+=”、“-=”、“/=”和“%=”

total += 5;

total = total + 5;

注意两个运算符中间不要有空格

total += (sum+100)/12;

total = total + (sum+100)/12;

total *= (sum+100)/12;

total = total * (sum+100)/12;

total /= 12 + 6;

total = total / (12 + 6);

递增递减

“++”和“--”是两个很特殊的运算符,它们是单目运算符,这个算子还必须是变量这两个运算符分别叫做递增和递减运算符他们的作用就是给这个变量+1或者-1。 count++; count += l; count = count +l;

前缀后缀

++和--可以放在变量的前面,叫做前缀形式,也可以放在变量的后面,叫做后缀形式。

a++的值是a加1以前的值,而++a的值是加了1以后的值,无论哪个,a自己的值都加了1了。

ChatGPT的解释(前缀后缀)

b=a++;

在C语言中,表达式"b = a++"有以下含义:

  1. 首先,取变量a的当前值,然后将其赋给变量b。
  2. 然后,增加变量a的值,将其递增1。这是由于"++"运算符是后缀递增运算符,它会在赋值操作完成之后才递增变量a的值。

因此,当执行"b = a++"时,变量b将被赋值为a的当前值,然后a的值将递增1。如果a的初始值为5,那么执行完这条语句后,b将等于5,而a将变成6。

b=++a;

在C语言中,表达式"b = ++a"有以下含义:

  1. 首先,递增变量a的值,将其增加1。
  2. 然后,将递增后的a的值赋给变量b。

因此,当执行"b = ++a"时,首先会将变量a的值递增1,然后将递增后的a的值赋给变量b。如果a的初始值为5,那么执行完这条语句后,a将变成6,同时b也将等于6。所以,b等于a的递增后的值。这与"b = a++"不同,后者会先将a的当前值赋给b,然后再递增a的值。

用程序实验

#include<stdio.h>
int main()
{
int a=10;
printf("a++是%d\n",a++);
printf("a是%d\n",a);

printf("++a是%d\n",++a);
printf("a是%d\n",a);

}

ChatGPT的解释(上述程序)

这个C语言程序演示了后缀递增运算符(a++)和前缀递增运算符(++a)的区别。下面是对程序的逐行解释:

  1. #include <stdio.h>:这是包含标准输入输出库的预处理指令。
  2. int main():这是程序的主函数,它的返回类型是整数(int)。
  3. int a = 10;:在函数内部定义一个整数变量a,并将其初始化为10。
  4. printf("a++是%d\n", a++);:这是一个输出语句,它使用了后缀递增运算符。首先,它会输出字符串 "a++是",然后将a的当前值(10)输出,然后再执行递增操作,所以此时a的值仍为10。因此,这一行会输出 "a++是10"。
  5. printf("a是%d\n", a);:这是输出a的当前值,由于上一行中使用了后缀递增运算符,a的值在上一行中已经递增了,所以这一行会输出 "a是11"。
  6. printf("++a是%d\n", ++a);:这是一个输出语句,它使用了前缀递增运算符。首先,它会将a的值递增1,然后输出字符串 "++a是" 和递增后的a的值,此时a的值已经是12了,所以这一行会输出 "++a是12"。
  7. printf("a是%d\n", a);:这是输出a的当前值,由于上一行中使用了前缀递增运算符,a的值在上一行中已经递增了,所以这一行会输出 "a是12"。

总结:

  • 后缀递增运算符(a++)会先使用变量的当前值,然后再递增变量的值。
  • 前缀递增运算符(++a)会先递增变量的值,然后再使用递增后的值。
© 版权声明
THE END
点赞5 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容