C语言操作符总结

一.C中操作符分类:

算数操作符

移位操作符

位操作符

赋值操作符

单目操作符

关系操作符

逻辑操作符

条件操作符

逗号引用操作符

下表引用、函数调用和结构体

二.各类操作符的用法

1.算数操作符

(1)包括:+ - * / %

(2)用法:与数学中用法一致(%为求模运算,也就是取余数

(3)注意事项:

     1)除了%操作符,其余均可用作整数和浮点数。

     2)对于/操作符:两操作数均为整数就为整数除法;否则为浮点除法。

2.移位操作符

(1)包括:<< 左移操作符

           >> 右移操作符

(2)用法:

    1)左移:

      规则:左边抛弃,右边补零。

    2)右移:

       右移分两种:

       1、逻辑移位:左边用零填充,右边丢弃。

       2、算数移位:左边补原来符号位,右边丢弃。

(3)注意事项:在执行移位操作时,只在cpu中移位,不写回内存,即其自身值不发生改变,若需改变,需要进行赋值运算。如:int num = 1; 在执行num<<1;后num的值不改变,依旧为1;需要改变它的值用赋值语句:num = num<<1;

3.位操作符

(1)包含:

     &    按位与

     |    按位或

     ^    按位异或

(2)用法:

    1)按位与:对运算符两侧以二进制表达的操作数按位分别进行与运算。

              规则:两数都为一输出为1,其余均为零。

    2)按位或:对运算符两侧以二进制表达的操作数按位分别进行或运算。

              规则:两数至少有一个为1,则该值为1。

   3)按位异或:对运算符两侧以二进制表达的操作数按位分别进行异或运算。

               规则:相同为0,相异为1。

(3)注意事项:位运算非常灵活的操作符,异或运算是相同比特为会清零,任何数和零异或是它本身。运算的操作数必须为整数。

    较为经典的题:

按位与的经典用法

int count_one_bits(unsigned int num)

{

int count = 0;

 

while (num)

{

count++;

num = num&(num - 1);  //运用按位与运算可以很巧妙的求出一个数二进制数中一的个数

}

return count;

}

int main()

{

int num = 0;

scanf("%d", &num);

int ret = count_one_bits(num);

printf("二进制数中1的个数:%d\n", ret);

 system("pause");

return 0;

}

按位异或的经典用法:

(在不创建临时变量的前提下交换两个数的值)

      int main()

               {

        int a = 5;
int b = 9;


a ^= b;
b ^= a;
a ^= b;


printf("a = %d , b = %d\n", a, b);

       }

4.赋值操作符

(1)包含:= +=  -=  *=  /=  %=  >>=  <<=  &=  |=  ^=

(2)用法:“=”赋值运算就是将一个数值赋值给一个变量。如:int a=1;//则a的值就是1。

           例如:a += 1相当于a = a+1;

           其余的用法与上述举例相同。

5.单目操作符:

(1)包含与用法:

运算符

含义

逻辑反操作

-

负值

+

正值

&

取地址

sizeof

操作数的类型长度(以字节为单位)

~

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

--

自减运算符

++

自增运算符

*

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

(类型)

强制类型转换

(2)用法

    1)自增“++”自减“--”运算

      a)前置++,前置--

      例如:int a = 1; ++a表示:a=a+1;之后在使用a的值。(--a用法与++a相同)

      b)后置++,后置--

      例如:int a = 1; a++表示:先使用a=1的值,然后执行+1操作,将a的值变为        2。(--a用法与++a相同)

   2) sizeof:用来求变量多占空间的大小。

    例如:sizeof(int)的值是4。因为int型占四个字节。(其余变量与之相同)。

     sizeof与数组:

     例如:定义一个数组int a[10] = {0,1,2,3,4,5,6,7,8,9}; 

         a.则sizeof(a)= 40;//int型占4个字节,共有10个元素,则占40字节。

         b.用sizeof求数组元素的个数:sizeof(a)/sizeof(a[0]);

            //用数组的总长度/一个元素的长度。

  3)*操作符:指针变量:如:int *p; 

              解引用。

6.关系操作符:

(1)包含:>  >=  <  <=  !=  ==

(2)用法:与数学中用法相同。

(3)注意事项:例如:x=get_value(); if(x=5){处理事件;},可以发现条件少写了                 “=”,变成了赋值语句。(解决办法:写成if(5==x)的形式

7.逻辑操作符:

(1)包含:&&  // 逻辑与

           ||   //逻辑或

(2)用法:用来判断逻辑的真或假。

(3)注意事项:当执行&&运算时:第一个是0,则后面的运算不需要执行。

               当执行||运算时:第一个是1,则后面的运算不需要执行。

8.条件操作符

(1)包含:exp1 ? exp2 : exp3

(2)用法:例如:

if(a>2)

 {b = 3;}

else

 {b = 5;}

         可以用条件操作符改写为:b = (a > 2)? b = 3 : b = 5;

9.逗号引用操作符:

(1)形式:exp1,exp2,exp3…expn

(2)用法:从左到右依次执行,以最后一个表达式的值为主。

10.下表引用、函数调用和结构体:

(1)包含及用法:

     1)[]操作数:一个数组名+一个索引值

                 int arr[10];//创建数组

                 arr[9]=10;//实用下标引用操作符

             上例的操作数分别是:arr和9;

     2)()函数调用操作符:接受一个或多个操作数:第一个是函数名,其余都是          传递给函数的参数。

     3)访问一个结构的成员:

        .结构体.成员名

        ->结构体->成员名


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值