初识操作符1
操作符分为
算数操作符:
+ - * / %
加 减 乘 除 模(余)
移位操作符:
<< >>
位操作符:
& ^ |
按位或 按位异与 按位与
赋值操作符
= += *= -= /= &= ^= |= <<= >>=
单项操作符
! 逻辑反操作
- 负值(等同数学)
+ 正值(等同数学)
sizeof 操作数的类型长度(单位:字节)
(之前的文章讲过)
(还有小部分下期讲)
求下列函数结果
#include<stdio.h>
int main()
{
int a=9/2;
float b=9/2;
float c=9/2.0;
int d=9%2;
int e=2;
int f=e<<1;
printf("%d\n",a);
printf("%f\n",b);
printf("%f\n",c);
printf("%d\n",d);
printf("%d\n",f);
return 0;
}
这个程序的结果是
4
4.000000
4.500000
1
4
因为a是整型,所以结果是4
因为除号两段都是整数,所以执行整数除法,结果也是整数,又因为是浮点型,所以结果是4.000000
当除号两段有一个数是小数时,就执行小数除法,所以结果是4.500000
因为是取模(取模也叫取余数),9/2余1,所以结果就是1
左移操作符移动的是二进制位
因为是左移操作符,2的二进制表示为10,而2又是整型,一个整型4个字节,一个字节又是8个比特位,所以2完整应该是00000000 00000000 00000000 000000010,然后将a向左移动一位,结果就是00000000 00000000 00000000 00000100(向左移动右边自动补0),所以结果就是4
#include<stdio.h>
int main()
{
int a=2;
a=a+5;
//可以写成a+=5;
//这就是赋值操作符
//别的赋值操作符同理
return 0;
}
a+b;
此时+号左右有两个操作数,所以是双目操作符
当+附近只有一个操作数的时候,叫单目操作符
int main()
{
//在C语言中,0表示假,非0表示真
int a=10;
printf("%d",!a);
return 0;
}
因为!是逻辑饭操作,10是非0数,所以结果就是0,当a为0时,!a=1(因为非0数太多,所以C语言规定,当把假变成真,那么真就是1)
那么!用于什么呢?
比如:
int main()
{
if(a)
{
//当a为真时,执行
}
if(!a)
{
//当a为假时,执行
}
return 0;
}