C语言操作符总结

c语言操作符总结

  • 算术操作符

算术操作符比较简单,有+-*/%

需要特别注意的是:

1. 取余运算只能作整数取余。3%2

2. 除法运算中,两个整数做除法结果也为整数,如果有一个数是浮点型的,那么结果就为浮点数。

  • 移位操作符

移位操作符分为两种左移操作符<< 和右移操作符 >>


补充:移位操作符是对计算机中存放的二进制数而言的。计算机中存放的二进制数是一个数的补码,正数的原码,反码和补码都相同,负数的补码等于原码取反加一。 

左移操作符 <<移位规则:左边丢弃,右边补0

右移操作符 >>分为两种:

1)        算术右移:右边丢弃,左边补符号位。

2)        逻辑右移:右边丢弃,左边补0

具体哪一种看编译器,算术右移用的多一点,比较准确。

  • 位操作符

包括 按位与 &,按位或 |,按位异或 ^

注意:这三个位操作符是根据 二进制位 来进行操作的
异或应用:交换两个数不需要创建临时变量。

  • 赋值操作符

这个比较简单,赋值 =

  • 复合赋值符

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

      a++ 相当于a=a+1,  a+=2相当于a=a+2
      a++先使用  a   的值在增加 1,++a  是先增加a  的值后使用。
int a = 1;
int b = a++; printf("%d\n", a); //2 printf("%d\n", b); //1 int b = ++a; printf("%d\n", a); //2 printf("%d\n", b); //2


  • 单目操作符

	!                逻辑反
	-                负值
	+                正值
	&                取地址
	sizeof           操作数类型长度
	~                二进制数取反
	--               前置,后置--
	++               前置,后置++
	*                解引用操作符/间接访问操作符
       (类型)          强制类型转换

int main()
{
	int a = 1;
	printf("%d\n", !0);     //1
	printf("%d\n", !2);     //0
	a = -a;
	printf("%d", a);        //-1
	printf("%p", &a);       //a的地址
	system("pause");
	return 0;
}

sizeof和数组

int arr[10]={0};

printf(“%d\n”,sizeof(arr))            //40

补充:

1)        sizeof(数组名) 数组名表示整个数组,求整个数组的大小。

2)        &数组名 表示整个数组,&数组名取的是整个数组的地址。

  • 关系操作符

       > >=   <   <=  !=     ==

   注意区分赋值=,判断==  的区别!!!

  • 逻辑操作符           
     &&  逻辑与   

       ||   逻辑或

   区分&& &, | ||    1 & 2—————> 0

                                                     1 && 2—————>1

     1 | 2—————> 3

                                                     1 || 2—————>1

这里有一道面试题,请看下篇

  • 条件操作符

例如寻找两个数之间的较大者

ifa>5 b = 3

else     b = -3  等同于    int  b= (a>5) ? (3) : (-3);

  • 逗号表达式

逗号表达式,从左向右依次计算,整个表达式的结果取决于最后一个表达式的结果。

int a = 1, b = 2;

int c = (a > b, a = b + 10, a, b = a +1);     //13

  • 下标引用,函数调用,结构成员

[ ] 操作数:一个数组名加上一个索引值,在数组中使用,int arr[10]={0};

( ) 函数调用操作符:可以有一个或多个操作数,第一个操作数是函数名,必须有,其余就是参数,可以没有。

. 结构体.成员名

->结构体指针成员名

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值