当前位置:   article > 正文

C语言操作符_操作符被用来说明两个条件同为真

操作符被用来说明两个条件同为真

   操作符包括算数操作符,移位操作符,位操作符,赋值操作符,单目操作符,关系操作符,逻辑操作符,条件操作符,逗号表达式,下标引用,函数调用和结构成员。

1.算数操作符:  

           +            -        *          /         %

(1)除了%操作符之外,其他的几个操作符可以作用于整数和浮点数。

(2)对于/操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法。

(3)%操作符的两个操作数必须为整数。返回的是整除之后的余数。

2.移位操作符:

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

(1)左移操作符操作时:左边抛弃,右边补0。

(2)右移操作符操作运算分为俩种:

逻辑右移:左边用0填充,右边丢弃。

算数右移:左边用原该值的符号位填充,右边丢弃。

注意:

(1)对于移位操作符,不要移动负数位,这个是标准未定义的。

(2)我们一般使用算数右移。

3位操作符

         &    按位与              |     按位或                 ^  按位异或   

  1. #include<stdio.h>
  2. int main()
  3. {
  4. int num1 = 1;//00000000000000000000000000000001
  5. int num2 = 2;//00000000000000000000000000000010
  6. num1 & num2; //0000000000000000000000000000000000
  7. num1 | num2; //0000000000000000000000000000001111
  8. num1 ^ num2; //00000000000000000000000000000011 相同为0,相异为1
  9. return 0;
  10. }

4.赋值操作符:

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

这些运算符都可以写成复合的效果。比如:

  1. int i = 0;
  2. i = i + 5;
  3. i += 5;//复合赋值

5.单目操作符:

    !  逻辑反操作、     -  负值、      +   正值、   &  取地址、    sizeof  操作数的类型长度,以字节为单位、

   ~  对一个数的二进制按位取反、    --    前置、后置--、    ++  前置、后置++、   

    *   间接访问操作符,解引用操作符、    (类型)     强制类型转换 .

(1)!是操作符对它的操作数执行逻辑反操作,结果为真则输出假,结果为假输出为真,真为1,假为0。

(2)- 与 +就像一个数学符号一样产生正值和负值。

(3)& 取地址,取一个操作数的地址,&数组名取的是整个数组的地址。

(4)sizeof求变量时,可省括号:sizeof a //求a变量的类型长度。以字节为单位。 求类型长度时,不能省略括号: sizeof(int)

(5)~ 对一个数的二进制按位取反(包括符号位)

(6)前置 ++ 先加后用 ,前置 -- 先减后用

  1. int i = 0;
  2. int j = ++i;
  3. printf("%d %d", j, i);//j = 1; i = 1;

(7)后置 ++ 先用后加,后置 -- 先用后减

  1. int i = 0;
  2. int j = i++;
  3. printf("%d %d", j, i);//j = 0; i = 1;

(8)*  间接访问操作符,与指针一起使用,用于访问指针所指向的值。

  1. int a = 10;
  2. int *p = &a;//此处 * 表示为整型指针 ,把现有变量的地址赋值给一个指针变量
  3. *p = 20;// * 为指针运算符 ,*p的值改变,同样a的值也改变
  4. printf("%d", a);//20

(9)(类型)强制类型转换,把表达式的值转换为另外比较大的类型的时候,需要强制类型转换。

6.关系操作符

                             >   >=    <     <=    !=  不想等         == 相等

7.逻辑操作符

                               &&    逻辑与                ||       逻辑或

(1)区分逻辑与和按位与,逻辑或和按位或

          1 & 2 ----------> 0   二进制运算后值为0

         1 &&2 -----------> 1

          1 | 2 -------------> 3

          1 || 2 ------------->1

(2)工作原理: &&操作符的左操作数总是首先进行求值, 如果它的值为真,然后就紧接着对右操作数进行求值。如果左操作数

的值为假,那么右操作数便不再进行求值,因为整个表达式的值肯定是假的,右操作数的值已无关紧要。|操作符也具有相同的特

点,它首先对左操作数进行求值,如果它的值是真,右操作数便不再求值, 因为整个表达式的值此时已经确定。这个行为常常

被称为“短路求值”。

  1. #include<stdlib.h>
  2. int main()
  3. {
  4. int i = 0, a = 0, b = 2, c = 3, d = 4;
  5. i = a++ && ++b && d++;
  6. //i = a++ || ++b || d++ a = 1, b = 3, c = 3, d = 4
  7. printf(" a = %d\n b = %d\n c = %d\n d = %d\n", a, b, c, d);//a = 1, b = 2, c = 3, d = 4
  8. system("pause");
  9. return 0;
  10. }

8.条件操作度

                exp1  ?  exp2   :  exp3

(1)首先计算的是exp1, 如果它的值为真(非零值),那么整个表达式的值就是exp2的值, exp3不会进行求值。但是,如果exp1

的值是假(零值), 那么整个条件语句的值就是expression3的值,exp2 不会进行求值。 

9.逗号表达式

               exp1 ,   exp2 ,   exp3,....... expN

(1) 逗号操作符将两个或多个表达式分隔开来。这些表达式自左向右逐个进行求值,整个逗号表达式的值就是最后那个表达式的

值,意思就是最后这个表达式起判断作用。

10.下标引用,函数调用和结构成员

(1)[ ]下标引用操作符

操作数:一个数组名 + 一个索引值

(2)()函数调用操作符

接受一个或多个操作数:第一个操作数是函数名,剩余的操作数就是传给函数的参数

(3). 结构体、成员名      -> 结构体指针->成员名

 .  和  -> 操作符用于访问一个结构的成员。如果s是一个结构变量,那么s.a就访问s中叫a的成员。当你拥有一个指向结构的指针而不是结构本身,且欲访问它的成员时,就需要->操作符,这样性能会高一些。

         C语言操作符拥有品种繁多的操作符,它的这个特点使它很难精通。但另一方面,C的操作符具有其他语言的操作符无可抗衡的价值。

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/175807
推荐阅读
相关标签
  

闽ICP备14008679号