【C语言】操作符

C语言的操作符有很多种,也很重要,可分为以下几类:

1.算术操作符:+ - * / %

除法中:俩个整形相除结果也等于整形;含有浮点型的除法中结果也为浮点型。

% :模运算只能用于整数,因为有小数点时,为浮点数运算,浮点数除法中不存在小数。

int main()  
{  
   int a = 3;  
    int b = 2;  
    printf("%d",3/2);//结果为1,不是1.5  
    printf("%d",3.0/2);结果为1.5  
 return 0;  
} 


2.移位操作符:>>    <<

左移<< 左边直接抛弃,右边补0  001 << 2 = 100 

右移>> 算术右移:右边抛弃,左边补符号位;逻辑右移: 直接补0;

【注意】移位不能用于负数。

一个整数右移相当于这个整数除2;

num>>1==num/2 所以除2的时候可以用右移代替;

0x40000000 << 1 = -2的31次方

左移n位,相当于num乘以2的n次方。

3.位操作符:& | ^

位操作符在C中很少出现,但很重要;

& 按位与 1&0=0  1&1=1;

 特点:某一位与上1为它本身,所以&可以用来取出二进制中的某位;

| 按位或   1|0=1

^ 按位异或  1^0=1 1^1=0 0^0=0

 特点 设:a^b==c; c^b==a; c^a==b;  三个数直接异或存在自反性(自己理解)

3.赋值操作符:=

   复合赋值操作符: +=  -=   *=   /=  >=   <=   ==   !=

num+=1;   num=num+1;

num-=1;   num=num-1;

4.单目操作符: ! -  +  &  sizeof  ~ --  ++  *  (类型)

!:逻辑反操作,真变为假,假变为真;

&:取地址符

int num = 20
int arr[10] = {0};
printf("%p\n",&num);
printf("%p\n",arr);//arr表示数组首元素的地址
printf("%p\n"arr[0]);//首元素地址
printf("%p\n",&arr);//这里arr表示整个数组,对整个数组取地址为首元素地址

sizeof:计算长度

sizeof (int);

sizeof  (num);

sizeof num;以上3种表示方法都可以,但不能表示为

siozeof int;

~ :二进制按位取反

* :解引用

int *p = &num;

*p = 20;

(类型):强制类型转换

5.关系操作符: >   <    >=   <=    ==   !=

==  :等于 注意与赋值=区分

防止写错可以写为

if(5==i)

6.逻辑操作符: && ||

&& :逻辑与  1&&1为真  当&&左边为0时,右边将不再计算

||  :逻辑或   1||0为真    当||左边为1时,右边将不再计算

7.条件操作符: exp?exp1:exp2

如果条件exp成立返回1,否则返回2;

发布了31 篇原创文章 · 获赞 21 · 访问量 9328
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章