c语言操作符的一些规则

一. 运算操作符
+,-,*,/,这一类的运算符与数学上的规则一致,除此之外c语言还有自己的一个独特运算符%,使用这个运算符可以计算两个除数的余数,被称为求模;需要注意的是使用这个操作符只能求出两个整形的余数,返回一个整形.

int a = 3;
int b = 7;
int c = b / a ;//此时c的结果为1

二. 移位操作符
左移操作符(<<):,在32位机的int形下每左移一位就相当于在长度为32的二进制右边补零,左边移出一位
右移操作符(>>):右移操作分为两种情况:
1.算术位移(有正负位时,补位会考虑到符号位)
2.逻辑位移(与左移一样不考虑符号位)

int a = 2;//-->0010
int b = a<<1;//-->4-->0100
int c = a>>1;//-->1-->0001
a >>= 1;//-->a = a >>1-->1-->0001(简便写法)

从中不难看出将变量左移(右移)就相当于给原来的数乘2(除2);
三. 按位操作符
按位操作符有:&(与操作), | (或操作),^(异或操作);
顾名思义这些操作符是针对二进制的每一位操作
&:两个为1才为1,一个为零全为零;
| :两个为零才为零,一个为零则为1;
^:相同为零,相异为一

int a = 3;//-->0011;
int b = a & 1;//0011 | 0001-->0001
b = a & 0010;//-->0010 可见通过与可以取出相应位数的0 或 1
int c = b ^ a;//-->0001可以通过异或判断两个数是否相等,相等时将会返回0000

四.赋值操作符
c语言中的赋值与数学中的’='有一定区别,赋值只能将左边的值赋予右边,在连续赋值时遵循从左向右的原则
a = c = 100;//此时a等于100
加上运算操作符可以增加一些简便操作;

a += 1;//a = a + 1;
a %= b;//a = a % b;

五.单目运算符
单目运算符:!(逻辑反操作、非)、&(取地址符)、sizeof(求长度)、~(按位取反)、++、–等;
单目运算符即针对一个数据的运算,其中需要注意的是++,–有两种方式,前置++(i++),后置++(++i);

int a = 3;
int b = a++;//-->3(会显示加之前的数据)
int c = ++a;//-->5(注意不管是前置加还是后置加都会在运行结束后给原数据加一) 

六.关系运算符
有!=,==,>=,<=等,注意关系运算符返回的是表示判断是否正确的值,正确为零错误为一;注意代表两个数相等用的是两个等于,若写为一个则达不到判断的效果会变为一个赋值语句;

int a =3;
int b = 3;
//if(a = b)虽然也是赋值,但只是代表将b的值赋给了a,
//3恰好是一个不等于零的数所以进入判断
if ( a == b){
printf("相等\n");
}

七.条件操作符
1.exp1 ? exp2 : exp3 ;
问好运算符就相当于一个简单的if-else语句,问号前如果为真则进入第一个逗号,为假则进入第二个问号;

int a = 3;
int b = 1;
printf("%d\n",a < b? b : a);//判断两者大小若b大于a则输出b,否则输出a

2.exp1,exp1,exp1;
逗号操作符可以依次三个语句进行操作,若将逗号表达式赋给其他变量时则会将得到最后一个表达式的值;

int a = 1;
int b = 2;
int c = a++, ++b , 8;
printf("%d %d %d\n",a,b,c);//结果:2 3 8
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值