复合赋值
- 5个算术运算符: + - * / % 。都可以和赋值运算符“ = ”结合起来,
形成复合赋值运算符: “ += ”,“ -= ”,“ *= ”,“ /= ”,“ %= ”。 如 a += 5; 就等于 a = a + 5; - 需要注意的是,复合赋值运算符之间不能有空格。
在使用复合赋值运算符时,我们可以这样去理解 如:
a += 5;
这个代码 它的实际运算过程是:
a = a + 5;
我们就可以理解为“+=”就是先将“ = ”号两边的变量做加法,然后再将加法所得的结 果赋值给“ = ”号左边。 同理,“ -= ”就是先将“ = ”号两边的变量做减法,然后再将减法所得的结果赋值给 “ = ”号左边,其它的复合赋值运算符可以以此类推。 强调: 复合赋值运算符的优先级在运算符中最低,所以如果复合赋值运算符右边有一个计算式的话,程序会先进行计算式的运算,之后再进行复合赋值运算符的运算
递增递减运算符
“ ++ ”,“ – ”是两个很特殊的运算符,它们是单目运算符,而且它的算子还必须是变量。这两个运算符分别叫做递增运算符,递减运算符。 它们的作用是给这个变量 +1 或者 -1 。 但是当这个递增递减运算符与变量的位置关系不同的话,它的使用结果也不一样
- ++和–可以放在变量的前面,叫做前缀形式,也可以放在变量的后面,叫做后缀形式。
- 运用时,a++的值是a加1以前的值,而++a的值是加1以后的值。
- 同理可类推–的运算结果
- 但是无论是前缀还是后缀,a自己的值都加了1或者减了1,只是表示的结果不同罢了
递增递减运算符解析
我们可以来试一下这个代码:
int main()
{
int a;
a = 10;
printf("a++=%d\n",a++);
printf("a=%d\n", a);
printf("++a=%d\n", ++a);
printf("a=%d\n", a);
return 0;
}
它的运行结果如下: 很明显的是,我们对a初始化的值为10,在进行a++的运算后 ,这个表达式(a++)得出来的值还是10,但是a的值变成了11.a等于11,程序接着往下进行,在进行++a的运算后,这个表达式(++a)得出来的值为12,直接得出来的就是a+1的值。
前缀与后缀小总结
表达式 | 运算 | 表达式的值 |
---|
a++ | 给a加1 | a原来的值 | ++a | 给a减1 | a+1以后的值 | a– | 给a减1 | a原来的值 | –a | 给a减1 | a-1以后的值 |
这两个运算符(递增,递减)可以单独使用,但是不要组合进表达式。
关于数字0与字母o在程序中的小区别
因为数字0与字母o十分的相似,所以为了区分这两个字符,在程序语言中,专门为数字0做了一些改变。 就像下边这个代码块中所写:
#include <stdio.h>
int main()
{
printf("猜猜看哪个是数字,哪个是字母呢?");
printf("0,o");
return 0;
}
想必,这么简单的问题肯定难不倒你们 左边的是数字0,右边的是字母o
if语句
if语句的写法: if(条件成立){ …… } 如果括号内的条件成立,那么程序进入到花括号内接着运行,如果条件不成立,那么程序就跳过整个if语句往下运行。
if语句中的条件
我们把这个条件叫做一种运算 计算两个值之间的关系,所以叫做关系运算
运算符 | 意义 |
---|
== | 相等 | != | 不相等 | > | 大于 | >= | 大于或等于 | < | 小于 | <= | 小于或等于 |
- 所有的关系运算符的优先级 比算术运算符的低,但是比赋值运算的高。因为=意思为赋值,所以 == 才意为相等注意!!连续的关系运算是从左到右的!!!!!判断是否相等的 “ == ”和“!=”的优先级比其他的低!
- 当两个值的关系符合运算符的预期时,关系运算的结果为整数1,否则为整数0,关系运算符运算结果均为0或1。
- 举例:(“/……/”之间的内容为段落注释,不会被程序读取,起注释,解释,易于理解程序含义的作用)
#include <stdio.h>
int main(void)
{
printf("%d\n",5==3);
printf("%d\n",5>3);
printf("%d\n",5>=3);
printf("%d\n",5<3);
printf("%d\n",5<=3);
printf("%d\n",5!=6);
return 0;
}
运行结果如下图所示 很轻易的就能够看出来条件判断后输出的结果,成功则为1,失败则为0。
|