C语言操作符概括

C语言操作符是说明特定操作的符号,是构造C语言表达式的工具,除基本的算术、逻辑、关系运算符之外,还有一些较为特殊的操作符,如位操作符等。现在对C语言操作符进行一个大体的概括:

一、算术运算符

算术运算符除了包括“+、—、*、/“四种基本的运算之外还有”%(取模)、++(自增运算)、- -(自减运算)”三种运算符。其具体使用方法如下:

+:两个数相加;

:两个数相减;

*:两个数相乘;

:两个数相除,取整数为最终结果;

%:两个整数相除,取其余数为最终结果;

对于自增运算符“++”和自减运算符“- -”来说,它们只能用于变量,不能用于常量或表达式,且又分为前置自增、后置自增,前置自减、后置自减,假设有一变量i,在程序中,i++是先使用i之后对i进行加1,++i是使用i之前先进行加1,对于“- -”来说也是一样的使用方法。例如:

i=3;

printf("%d",i++);//输出的值之为3;

改为:printf("%d",++i);//输出值为4;


二、逻辑运算符

C语言支持所有的关系逻辑运算符,逻辑运算符包括:“ && ”、“ || ”、“ ! ”。

“ && ”(逻辑与):对于两个变量逻辑与来说,如果都为真,则值为真,当至少有一个为0时,则值为假;

“ || ”(逻辑或):对于两个变量逻辑或来说,如果都为假,则值为假,当至少有一个为1时,则值为真;

“ ! ”(逻辑非):假设有变量A=1,那么!A=0,若A=0,那么!A=1。


三、关系运算符

C语言支持所有的关系运算符,假设有两个变量m=1,n=2,具体如下:

“==”(等于):检查两个数的值是否相等,若相等则条件为真,例:m==n,不为真;

“ != "(不等于):判断两个数的值不相等,若不相等则条件为真,例:m!=n,为真;

">":判断左操作数的值是否大于右操作数,若大于则条件为真,例:m>n,不为真;

"<":判断左操作数的值是否小于右操作数,若小于则条件条件真,例:m<n,为真;

“>=”:判断左操作数的值是否大于等于右操作数,若大于等于则条件为真,例:m>=n,为假;

“<=”:判断左操作数的值是否小于等于右操作数,若小于等于则条件为假,例:m<=n,为真。


四、位运算符

位运算符作用于位,并逐位进行操作,假设有两个变量m,n,其中m=60,其二进制为:0011 1100;n=13,二进制为:0000 1101,具体如下:

“&”:存在两个操作数,对它们的二进制逐位进行按位与操作,若都为1则值为1,若至少存在一个0则值为0;

” | “:存在两个操作数,对它们的二进制逐位进行按位或操作,若都为0则值为0,若至少存在一个1则值为1;

“ ^ ”:存在两个操作数,对它们的二进制逐位进行按位异或操作,若同为1或同为0,则值为0,若不相同则值为1;

“ ~ ”:叫做二进制补码运算符,这是一元操作符,对一个数的二进制逐位进行取反;

例:m&n=0000 1100

      m| n =0011 1101

      m^n =0011 0001

      ~m=1100 0011

除上述的四种外,位运算符还有"<<"(左移运算符) 、">>"(右移运算符):

"<<":对m进行左移,m的值不变,结果发生变化;

">>":对m进行右移,m的值不变,结果发生变化,右移分为(1):算术右移:向右边移动指定位数,左边补符号位,正数补0,负数补1;(2)逻辑右移:向右边移动指定位数,左边补0;

例:m<<2结果为1111 0000,即240,它是对m的二进制序列进行左移两位,然后在右边补0;(可看出左移一位有*2的作用)

        m>>2结果为0000 1111,即15,它是对m的二进制序列进行右移两位,然后在左边补符号位;(可看出右移一位有/2的作用,但这是对于整数而言)


五。赋值运算符

假设变量m、n、k:

“=”:赋值运算符,把右边的值赋给左边,如m=n,既是把n的值赋给m;

“+=”:相加且赋值,如m+=n,既是m=m+n,把m+n的值赋给m;

“-=”;相减且赋值,如m-=n,既是m=m-n,把m-n的值赋给m;

“*=”:相乘且赋值,如m*=n,既是m=m*n,把m*n的值赋给m;

“/=”:相除且赋值,如m/=n,既是m=m/n,把m/n的值赋给m;

“%=”:相模且赋值,如m%=n,既是m=m%n,把m%n的值赋给m;

“<<=":进行左移后赋值,如m<<=2,既是m=m<<2;

">>=":进行右移后赋值,如m>>=2,既是m=m>>2;

"&=":进行按位与后赋值;

"|=":进行按位或后赋值;

"^=":进行按位异或后赋值。


六、除了上述所列举的运算符之外,还有一些重要的运算符:sizeof(),&,->,*,? :  ,(类型)

sizeof:返回变量的大小,如a为整数,那么sizeof(a)=4;

&:给出变量的实际地址,如&a,就是给出a的实际地址;

*:间接访问操作符,指向一个变量,如*a;

? : :这是一个三目运算符,其使用方法为:表达式1?表达式2:表达式3,若式1为真则执行式2,为假则执行式3;

(类型):强制类型转换符;

->:这是一个整体,用于指向结构体,若我们在c语言中定义了一个结构体,然后声明一个指针指向这个结构体,那么要用指针结构体中的数据,此时就要用到->;

逗号表达式:即一个语句中有多个表达式,那么是以一个表达式的值为最终结果。


上述就是在C语言学习中会用到的操作符的概括,对于多个操作符同时出现在一个语句中时,优先级较高的会先进行运算。









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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值