目录
五.运算符与表达式之条件
一.运算符与表达式之位
位运算
定义:对整形数据进行运算,且符号位需参与运算
运算符 | 含义 | 举例 | 结果 |
& | 按位与 | 3&5 | 1 |
| | 按位或 | 3|5 | 7 |
^ | 按位异或 | 3^5 | 6 |
~ | 按位取反 | ~3 | -4 |
<< | 左移 | 3<<1 | 6 |
>> | 右移 | 3>>1 | 1 |
#include<stdio.h>
void main ()
{
printf("%d\n",3&5);
printf("%d\n",3|5);
printf("%d\n",3^5);
printf("%d\n",~3);
printf("%d\n",3<<1);
printf("%d\n",3>>1);
}
分析位运算结果是,先将运算的整数转化为二进制进行按位运算
按位异或的运算规则;相异为真,相同为假
二.运算符和表达式的自增自减
自增自减(一元运算符)
只能对变量进行运算
++i --i 在使用i之前,先使i的值加/减1,先增减,后运算
i++ i-- 在使用i之前,使i的值加/减1,先运算,后增减
int i=3
printf("%d",++i)
int i=3
printf("%d",i++)
结合性;自右向左
++与-是同优先级
三.运算符与表达式之 赋值
赋值
符号“=”
【变量】=【表达式】
结合性:自右向左
#include“stdio.h"
int main ()
{ int j;
j=2.5
printf("j=%d",j)
}
复合赋值运算符
双目运算符+赋值运算符
格式:表达式1 op=表达式2 a+=b-1
等价于:表达式1 =表达式1 op (表达式2) a=a+(b-1)
*= | /= | %= | += | -= |
<<= | >>= | &= | |= | ^= |
#include "stdio.h"
int main ()
{ int a=12;
a+=a-=a*12;
printf("a=%d",a);
}
四.运算符与表达式之逗号
逗号
作用:将几个表达式隔开以此计算
优先级:最低
结合性:自左向右
整个表达式的值:最后一个表达式的值
求解过程:自左向右,以此计算,最后一个表达式的值为整个表达式的值
#include ”stdio.h"
int main()
{ int num ;
num=(2+2,2*3,5);
prinntf("num=%d",num);
}
五.运算符与表达式之条件
条件
运算符 | ? | : |
作用:判断一个逻辑表达式的结果,如果为真则指定执行某给表达式,如果为假则指定执行另外的表达式
实质:起程序控制作用
求值规则:先求表达式1---(真)----->求表达式2
---(假)----->求表达式3
结合性:自右至左
include "stdio.h>
int main ()
{
int y,x=15
y=x>10?x/10:x>0?x:-x;
printf("y=%d",y)
}
六.运算符与表达式之求字节数
字节数
运算符 | sizeof() | 单目运算符,计算某一类型的运算量所占用的字节数 |
种类:1 sizeof(类型标识)2.sizeof(变量名);sizeof变量名
#include "stdio.h"
int main()
{ int a;
double x;
printf("%d,%d\n",sizeof(a),sizeof x);
printf("%d,%d",sizeof(int),sizeof(double));
}