操作符注意点

算数操作符注意点

%:不能使用double类型定义,即两个操作数都必须为整数。

移位操作符注意点

>>(右移操作符)分为算术右移与逻辑右移,移动的是二进制位。

(常用)算术右移:右移一位相当于除2,左边补原符号位。(右边丢弃,左边补符号位)

              逻辑右移:右移一位相当于除2,左边补0。(右边丢弃,左边补0)

<<(左移操作符)不分算数右移和逻辑左移;左移一位,相当于乘2。(左边丢弃,右边补0)

提示:移位运算符不能移动负数位,标准未定义。

整数存储到内存中的是二进制补码,整数存在形式有原码,反码,补码。

原码——反码:符号位不变,其余取反;

反码——补码:反码加1;

位操作符

按位与&,按位或|,按位异或^,操作符必须是整数。

赋值操作符可连续赋值

例如:x=a=b+1;

复合赋值符

+=、-=、*=、/=、%=、>>=、<<=、&=、|=、^=

#include<stdio.h>
int main ()
{
   int a=10;
  // a=a+2;
//printf("%d\n",a);
   a+=2;
printf("%d\n",a);

   return 0;
}

单目操作符

!、-、+、&(取地址)、sizeof操作数的类型长度(以字节为单位)、~(对一个数的二进制位按位取反)、--、++、*间接访问操作符(解引用操作符)、(类型)强制类型转换

#include<stdio.h>
int main()
{
   int a=10;
   int* p=&a;
   *p;//解引用操作符,*p指向的是a的内容
   return 0;
}

#include<stdio.h>
int main()
{
short s=0;
int a=0;
printf("%d\n",sizeof(s=a=4));//结果为2
printf("%d\n",s);//结果为0
return 0;
}

数组传参时,传的是数组的首地址

逗号表达式

exp1,exp2,exp3,……expn;从左到右依次计算,取的是最后一个表达式

隐式类型转换

整型提升

#include<stdio.h>
int main()
{
char a=3;//由于a只能存放一个字节(8bit),所以取低八位
char b=127;//相加时各自补够32位(高位通通补充符号位),再相加
char c=a+b;//只能存放低八位
printf("%d\n",c);//整型提升,补够32位(高位都补符号位),求原码,打印c
return 0;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值