c语言操作符小归纳

来源:互联网 发布:微信域名检测原理 编辑:程序博客网 时间:2024/06/05 17:49

1.算数操作符

     +  -   *   /   %
  • / 操作符的两个操作数必须都为整数,执行整数除法.如果有浮点数就执行浮点数除法.
     
printf("%d\n",8/5.0  //错误printf("%f\n",8/5.0  //正确

  • % 操作符的两个操作数必须为整数,返回的是整除之后的余数。
2.移位操作符
  << 左移操作符 ——左边抛弃,右边补0
  >>右移操作符,分为两种:
  •   逻辑移位:左边补0,右边抛弃
  •   算术移位:左边用原该值的符号位填充,右边抛弃
注:不能移动负数位
3.位操作符
    &   按位与——都为1才为1
    |    按位或——有一个1就为1
    ^   按位亦或——相异为1,相同为0
4.复合操作符
+=   -=   *=   /=   %=   >>=   <<=   &=   |=  
int a=1;a=a+1;a+=1;
5.单目操作符
    !           逻辑反操作    
    ~          对一个数的二进制按位取反
   (类型)    强制类型转换
    *           间接访问操作符(解引用操作符)
  • &取地址
int arr[10]={1,2,3,4,5,6,7,8,9,0}printf("%p\n",arr);  //首元素的地址printf("%p\n",*arr);  //首元素printf("%p\n",&arr);  //数组地址,不是首元素地址  
  • sizeof 操作符的类型长度
    int a=10;char c='4';printf("%d\n",sizeof(a));  //4printf("%d\n",sizeof(int));  //4printf("%d\n",sizeof(c));  //1
  • char arr1[10]={0};int arr2[10]={0};printf("%d\n",sizeof(arr1));  //10printf("%d\n",sizeof(arr2));  //40//sizeof(数组名)——数组名表示整个数组//&数组名——数组名表示整个数组//除此之外所有的数组名都是首元素的地址
6.关系操作符
>   >=    <    <=     !=    ==(用于测试相等)
7.逻辑操作符
   &&    逻辑与——两个都为真才为1
    ||      逻辑或——两个都为假才为0
int i=0,a=0,b=2,c=3,d=4;i=a++ && ++b && d++;printf("a=%d\n b=%d\n c=%d\n d=%d\n",a,b,c,d);//1,2,3,4a=1   //2,3,3,5