您的位置:首页 > 编程语言 > C语言/C++

C语言中的操作符

2017-12-20 20:38 218 查看
算术操作符

    +   -    *   /    %

1.%操作符的两个操作数必须为整数。结果是两个数的余数。

2.除了%操作符之外,其他几个操作符可以用于整数和浮点数。

例:8 / 5 = 1;  8.0 / 5 = 1.6;  8%5 = 3......

移位操作符

<< 左移操作符        >>  右移操作符

左移规则:左边抛弃,右边补0

例: int num = 8;

  00000000 00000000 00000000 00001000    //num在内存中的二进制表示

00000000 00000000 00000000 000010000  //num左移一位后的二进制结果

右移规则:左边用该原值的符号位填充,右边丢弃。(算术移位)

例: int num = -1

  11111111 11111111 11111111 11111111    //num在内存中的二进制表示

  11111111 11111111 11111111 111111111   //num右移一位后的二进制结果

位操作符

(1)  &  按位与     1与任何数相与都为任何数

(2)   |  按位或     1与任何数相或都为1

(3)  ^  按位异或    相同为0,不同为1

(注:他们的操作数必须是整数 且 所有的位操作皆[b]是以该数的二进制形式的补码进行运算)[/b]

[b]赋值操作符    =[/b]

例:int a = 4;

       int x = 5;

       int y = 10;

      a = y = x +3;      // C 语言中允许连续赋值,但不建议这样做

可以写成 :  y = x + 3;

                     a = y;

复合赋值符

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

例:{  int x = 5;          {   int x = 5;           ...

          x =  x + 5;            x = x * 5;           ...

          x += 5;   }             x *= 5;   }          ...

单目操作符

!              逻辑反操作   例:int a = 0; printf ("%d\n",!a);   //输出 a = 1

 -    

 +     

&               取地址          例:int arr[5] = {1,2,3,4,5};  printf ("%p\n",&arr);  //数组的地址

sizeof        操作数的类型长度     例:int a = 5;  printf ("%d\n",sizeof(a));  //整形长度为4个字节

~               对一个数的二进制按位取反

--                     前置、后置--      例: int a = 5; int  x = --a; //  a先自减1,然后使用。x为4.。。。int y = a--;    //a先使用,然后自减1. y为4

++                   前置、后置++    例: int a = 5; int  x = ++a; // a先自加1,然后使用。x为6.。。。int y = 5++;    //a先使用,然后自加1. y为6

*                     间接访问操作符(解引用操作符)

(类型)        强制类型转换

关系操作符

>   >=    <    <=    !=    ==

(注:== 用于测试“相等”。。 = 用于赋值)

逻辑操作符

&& 逻辑与    || 逻辑或

例:  int main()

         {

             int i = 0, a = 0, b = 2, c = 3, d = 4;

             i = a++ && ++b && d++;

             printf("a = %d\nb = %d\nc = %d\nd = %d\ni = %d\n", a,b,c,d,i);

             system("pause");

             return 0;

          }                    //输出结果为 1 2 3 4 0

         int main()

         {

             int i = 0, a = 0, b = 2, c = 3, d = 4;

             i = a++ || ++b || d++;

             printf("a = %d\nb = %d\nc = %d\nd = %d\ni = %d\n", a,b,c,d,i);

             system("pause");

             return 0;

          }                    //输出结果为 1 3 3 4 1

条件操作符

exp1 ? exp2 : exp3

例:If (a > 5)

          b = 3;        转换成条件表达式为: b =  a > 5 ?   3 : -3

       else

          b = -3;

逗号表达式

exp1,exp2,exp3,exp4,...(从左向右依次执行,整个表达式的结果是最后一个表达式的结果)

例:  int main()

          {

             int a = 1;

             int b = 2;

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

             printf("c = %d\n",c);

            return 0;

           }      //输出结果为 C=13
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: