正文
1.操作符.
1.1算术操作符.
+ 加法
- 减法
* 乘法
/ 除法
% 取余
1.2移位操作符.
>> 右移操作
<< 左移操作
int main()
{ //移二进制位的操作符
int a=1; //整型占用4个字节,32个bite位 00000000000000000000000000000001
int p=a<<1; // 00000000000000000000000000000010
printf("%d\n",p); //打印结果为2
return 0;
}
1.3位操作符.
& 按位与 并起来的意思 全一则一
| 按位或 有一则一
^ 按位异或 有一则一,全一则零
int main()
{
int a=3; //011
int b=5; //101
int c=a&b; //001
printf("%d\n",c); //打印的结果为1
return 0;
}
int main()
{
int a=3; //011
int b=5; //101
int c=a^b; //110
printf("%d\n",c); //打印的结果为6
return 0;
}
1.4赋值操作符.
= += -= *= /= &= ^= |= >>= <<=
int mian()
{
int a=2;
a=4; //= 赋值 ==判断相等
a=a+1; //这两个
a+=1; //意思一样
a-=1;
a&=1;
a^=1;
//......等等
return 0;
}
1.5单目操作符(一个操作数),双目操作符(两个操作数),三目操作符(三个操作数).
如 a+b // +双目操作符
! 逻辑反操作
- 负值
+ 正值
& 取地址
sizeof 操作数的类型长度(用来计算变量/类型所占空间的大小,单位是字节)
~ 按位取反(二进制位)
-- 前置--,先--,在使用;后置--,先使用,在--.
++ 前置++,先++,在使用;后置++,先使用,在++.
* 间接访问操作符(解引用操作符)
(类型) 强制类型转换
int main() //c语言中我们表示真假
{ //0 为假
int a=10; //非0 为真
printf("%d\n",a); //打印结果为10
printf("%d\n",!a); //打印结果为0
return 0;
}
int main()
{
int pp[10]={0};//创建一个数组,里面有10个整型元素
printf("%d\n",sizeof(pp));//打印结果为40
int z=0; //计算数组的元素个数=数组的总大小/每个元素的大小
z=sizeof(pp)//sizeof(pp[0]);
printf("%d\n",z);//打印结果为10
return 0;
}
int main()
{
int a=0; //四个字节,32个bite位
int b=~a; //a按位(二进制)取反
// 00000000000000000000000000000000
// 11111111111111111111111111111111
// 原码,反码,补码
// 负数在内存中存储的时候,存储的是二进制的补码
//11111111111111111111111111111110
//10000000000000000000000000000001
printf("%d\n",b);//打印的是这个数的原码,这个数为—1.
return 0;
}
include <stdio.h>
int main()
{
int a=(int)3.14//强制类型转换 double转换为int
return 0;
}
1.6关系操作符.
> 大于
>= 大于等于
< 小于
<= 小于等于
!= 用于测试不相等
== 用于测试相等
1.7逻辑操作符.
//&& 逻辑与 (并且,全真为真)
//|| 逻辑或 (有真为真)
int main()
{
//真 非0
//假 0
int a=0;
int b=5;
int c=a&&b; 全一为一(全真为真)
printf("%d\n",c);//输出为0
return 0;
}
1.8条件操作符.(三目操作符)
//exp1?exp2:exp3;//表达式1的结果为真,表达式2被执行,结果为假,表达式3被执行。
include <stdio.h>
int main()
{
int a=10;
int b=20;
int c=0;
c=(a>b?a:b);
if(a>b)
c=a;
else
c=b;
return 0;
}
1.9逗号表达式.
exp1,exp2,exp,3,exp4,expN
由逗号隔开的一串表达式叫逗号表达式。
1.10下标引用操作符,函数调用操作符,结构成员.
int main()
{
int pp[5]={0};
int pp[2] //[] 为下标引用操作符
return 0;
}
int ppp(int x,int y)
{
int z=0;
z=x+y;
return z;
}
int main()
{
int a=10;
int b=20;
int sum=ppp(a,b);//() 为函数调用操作符
return 0;
}
补:
只要是整数,内存中存储的都是二进制的补码.
正数:原码,反码,补码相同。
负数:
原码 反码 补码
直接按照正负 原码的符号位不变 反码加1
写出的二进制序列 其它位按位取反
如-2
10000000000000000000000000000010 原码
11111111111111111111111111111101 反码
11111111111111111111111111111110 补码