C语言基础之操作符总结

C语言基础之操作符总结

 

         操作符是告诉编译程序执行特定算术和逻辑操作的符号,C语言供了多种操作符,具有很强的运算能力。C语言的操作符可分为以下几类。


1.       算数操作符:用于各种数值的计算。由加(+)、减(-)、乘(*)、除(/)、求余(%)、自增(++)、自减(--)组成。其中加减乘除运算符属于双目运算符,自增自减运算符属于单目运算符。特别注意有三点,其一,求余符(%)要求两端均是整数,即(int)型,不可以是(double),或是(float)型。其二,自增自减运算符只针对变量操作,不可用作常量或表达式。例如6++或(a+b)++都是错误用法。自增自减操作符有两种表达形式:(++i)、i++)。需注意两种运算的区别。最后,++,--,和负号运算符的优先级相同,但比正号运算符(+)优先级别高。


2.       赋值操作符。赋值操作符分为简单赋值和复合赋值两种操作符。                简单赋值就是把一个数据赋给一个变量。例如a=5;r=x/y这样的操作。赋值运算符左边只能是变量而不能是常量或表达式,例如(a+b)=5这个式子就不是合法表达式。赋值运算符不等同于数学表达式中的等号,二者不可混为一谈。在赋值符号前加上其他运算符就构成了复合赋值。例如“+=”,“%=”等,参加复合运算的两个操作数,要先进行算术运算,然后将结果赋值给第一个操作数。温馨提示,(c=a=b+1)类似连续赋值应少用,避免出错。


3.       关系操作符。表示两个分量之间大小关系,C语言提供了六种操作符,它们是:>、>=、<、<=、==、!=(不等于),其中前四种优先级相同,后两种优先级相同,但前者高于后者。


4.       逻辑操作符,由(&&)逻辑与,(||)逻辑或,(!)逻辑非三种组成。“&&”有一假则为假,“||”有一真则为真。典型例题:{          int a=0;int b= 2; int c=;,int d=4;             i=a++&&b++&&d++;   },要求结果输出i。需要注意逻辑操作都是对内存中二进制数进行操作。


5.       “sizeof()”求变量类型的大小的操作数。特别注意“sizeof”不是函数。对于变量而言,有两种表现形式即:int a;    printf(‘%d’,sizeof a)和printf(‘%d’,sizeof(int)).两个都是求变量类型的大小,但后者必须sizeof后必须带上“()”。另外printf(‘%d’,sizeof (a+1))中sizeof括号里的表达式只在该句中作用,运算结果不会作用于该句外面的变量值。对于数组而言,定义一个数组  int  arr[10],   printf(‘%d’,sizeof (arr)),该句中的arr表数组,运算结果40,表示整个数组所占内存的大小,printf(‘%d’,sizeof arr+0),运算结果为4,表示数组第一个元素的所占内存空间的大小,


6.       “ * ”间接访问操作符,只对指针作用。例如( int a;int*  p = & a;),注意,不可单纯的将指针与常量连用,例如(*20),属于非法操作。


7.       “&”取地址操作符。对变量进行取地址操作。


8.       “()”函数调用操作符。至少有一个操作数,即调用函数名。


9.       移位操作数。由>> 和<<组成。其中左移相当于二进制中乘二操作,右移相当于二进制数除二操作。左移,左抛弃,右补零,右移时,如果是算数移位,则左边按原符号位填充,右边抛弃,常用这种方法进行右移位。而如果是逻辑移位,则是左边补零,右边抛弃。均是针对内存中二进制数进行操作。


10.    条件表达式,(exp1 ? exp2 : exp3),若exp1为真,执行exp2 , 若exp 1为假时,执行exp3。


11.    “[ ]”运算符。常用于数组中。例如arr[4]=5 ;4[arr]=5;两者运算结果相同。类似于交换律。


12.    “.” “→”,者多用于结构体创建中,后者用于指针。


13.    逗号操作符,表现形式:exp1,exp2, 从左到右依次计算,但结果是最后一个表达式的值。


14.    总结1,左移,右移,逻辑与或非,按位取反,都是对内存中二进制数操作,正数以原码形式操作,负数以补码形式操作。


15.    总结2,优先级顺序:算数运算符>关系运算符>赋值运算符

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值