C语言程序设计笔记4——C的运算符与表达式(上)

目录

1.C的运算符简介

2. 算数运算符与算数表达式

2.1 算术运算符

例题1.自加自减符号的使用

例题2:自加运算符的使用

2.2 正负号运算符

例题3:算术运算符的使用

2.3 求余运算符(模运算符%)

例题4:求余运算符的使用

2.4 算术表达式

3.赋值运算符与赋值表达式

3.1赋值表达式“=”

3.2 复合赋值运算符


1.C的运算符简介

C语言的运算符有不同的优先级,在表达式中,各运算量参与运算的先后顺序不仅要遵行运算符优先级别的规定,还要受运算符结合性的制约,以便确定是自左向右进行运算还是自右向左进行运算。

C语言的运算符:

算数运算符

+  -  *  /  %  ++  - -

关系运算符

>  <   ==  >=  <=  !   =

逻辑运算符

!  &&  ||

位运算符

<<   >>   ~   |   ^   &

赋值运算符

=及其扩展赋值运算符

条件运算符

?  :

逗号运算符

,

指针运算符

*和&

求字节数运算符

sizeof

强制类型转换运算符

类型

分量运算符

.→

下标运算符

[ ]

其他

如函数调用运算符()

2. 算数运算符与算数表达式

2.1 算术运算符

运算符

含义

备注

+

5+2结果7

-

5-2结果3

*

5*2结果10

/

5/2结果2

%

取余数

5%2结果1

只适用于整型数

++

自增运算

y=x++;等同y=x,x++

y=++x;等同x++,y=x

适用于整型数

--

自减运算

y=x--;等同y=x, x--

y=--x,等同x--,y=x

适用于整型数

++、- -使得整型变量的值增加1或减小1,它不能作用在表达式或常数上,自增自减运算符均为单目运算符,都具有右结合性。++i/--i i自增/自减1后再参与其他运算。i++/i-- i参与运算后,i的值再自增/自减1

例题1.自加自减符号的使用
#include <stdio.h>
main()
{
    int i = 8;
    printf("%d\n",++i);
    printf("%d\n",--i);
    printf("%d\n",i++);
    printf("%d\n",i--);
    printf("%d\n",-i++);
    printf("%d\n",-i--);
}

输出结果:

例题2:自加运算符的使用
#include <stdio.h>
main()
{
    int i=5,j=5,p,q;
    p=(i++)+(i++);
    q=(++j)+(++j);
    printf("%d,%d,%d,%d",p,q,i,j);
}

输出结果:

2.2 正负号运算符

作为正负号的“+”和“-”优先级高于“*”和“/”运算符,接合方向自右向左(←),-a*b相当于(0-a)*b

加法运算符“+”:为双目运算符,即应有两个量参与加法运算,具有右结合性;

减法运算符“-”:为双目运算符;但“-”也可作负值运算符为单目运算,如-x,-5等具有左结合性

乘法运算符“*”:双目运算符,具有左结合性

除法运算符“/”:双目运算符,具有左结合性,参与运算均为整数时,结果也为整型舍去小数,如果运算量中有一个是实型,结果为双精度实型

例题3:算术运算符的使用
#include <stdio.h>
main()
{
    printf("\n\n%d,%d\n",20/7,-20/7);
    printf("%f,%f\n",20.0/7,-20.0/7);
}

输出结果:

2.3 求余运算符(模运算符%)

双目运算符,具有左结合性,要求参与运算的量均为整型,求余运算符的结果等于两数相除后的余数

例题4:求余运算符的使用
#include <stdio.h>
main()
{
    printf("%d\n",100%3);
}

输出结果:

2.4 算术表达式

算术表达式是由常量、变量、函数和运算符组合起来的式子。一个表达式有一个值及其类型,表达式求值按运算符的优先级和结合性规定的顺序进行,单个的常量、变量、函数可以看做表达式的特例。

3.赋值运算符与赋值表达式

3.1赋值表达式“=”

由等号连接的式子称为赋值表达式,赋值表达式的功能是计算表达式的值再赋予左边的变量,具有右结合性

表达式的一般形式:

变量 = 表达式

如果赋值运算符两边的数据类型不同,系统将自动进行类型转换,即把赋值符号右边的类型转换成左边的类型,转换规则如下:

  1. 实型赋予整型舍去小数部分
  2. 整型赋予实型,数值不变但将以浮点形式存放,即增加小数部分(小数部分的值为0)
  3. 字符型赋予整型,犹豫字符型为一个字节,而整型为两个字节,故将字符的ASCII码值放到整型量的低八位中,高八位为0;
  4. 整型赋予字符型,只把低八位赋予字符量

例题5: 赋值运算符的使用

#include <stdio.h>
main()
{
    int a, b =322;
    float x,y =8.88;
    char c1='k',c2;
    a = y;
    x = b;
    a = c1;
    c2 = b;
    printf("%d, %f, %d, %c",a,x,a,c2);
}

输出结果:

3.2 复合赋值运算符

+=、-=、*=、/=、%=

复合赋值运算符是双元运算的一种简化写法,例如:sum=sum+i可以简化为sum+=i,运算时需要将右边部分作为一个整体进行运算,例如:b+=3*4.5等价于b=b+(3*4.5) ; i+=1:++i或者i++

C语言程序设计笔记4——C的运算符与表达式(下)链接:http://t.csdnimg.cn/UDGQk

  • 19
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值