C: 笔记整理3: 运算符与表达式(总复习)

笔记整理3: 运算符与表达式


常用运算符及其表达式:

如:+,-,*,/,%,=

(1),同类型运算得同类型结果。
(2),低类型与高类型运算得高类型结果。
(3),赋值运算自右向左
(4),有符号运算,正负号与最左侧数值相同。
(5),先 * / 后 % 在 + - (优先性)。

例(表达式):

a=5/2;				a=2
a=5.0/2;			a=2.0		//往高类型转

5 % -2 = 3
-5 % -2 = -5

各类型的优先级如下:
char–>short–>int–>long–>float–>double


实用型运算符及其表达式:
实用型
复合赋值运算符...
增量运算符...
逗号运算符...
关系运算符...
逻辑运算符...

(1),复合赋值运算符…

含:+=,-=,*=,/=,%=,

例(表达式):
a+=3; 等同于 a=a+3
x/=y+2; 等同于x = x /(y+2)
其优先级仅高于逗号运算符

(2),增量运算符…

含: ++(自增运算符),- -(自减运算符)

注意:x++(或x- -)与++x(或- -x)的意义并不相同。一个是先赋值再自增,另一个是先自增再赋值。

例(表达式):

int a=6;
printf("%d\n",a++);
printf("%d",++a);

输出结果:
6
8

(3),逗号运算符…

含:一逗( , ) 二逗( , , )

意义:不管一逗还是二逗,整个表达式的值都等于括号内最后一个表达式的值

例(表达式):

int a=6,b,c,d;
b=3+6,a/2;
c=(3+6,a/2);
d=(2,3,a++);
printf("%d\t%d\t%d",b,c,d);

输出结果:
9	3	6

(4),关系运算符…

含:>,>=,<,<=,==,!=,

注意:
1,前面四种的优先级大于后面的两种。
2,(a>b) 若该条件为真,则整个表达式等于1,否则整个表达式的值为0。

例(表达式):

int a,b;
a=(3>4);
b=(3<4);
printf("%d\t%d",a,b);

输出结果:
0	1

(5),逻辑运算符…

含: !(非),&&(与),||(或)

意义:

xy!xx&&yx\\y(代替一下竖杠)

这里的真假最后得出的结论也是整个表达式是1或0

例(表达式):

int a,b;
a=(3&&4);
b=(3<4||3>4);					//条件运算符的优先级大于逻辑运算符
printf("%d\t%d",a,b);

输出结果:
1	1

其它类型运算符及其表达式:
其它类型
强制类型转换运算符
条件运算符...
求字节运算符
......

(1),强制类型转换运算符

形式:(类型名)(表达式)

含义:将后面表达式的最终类型转换为前面括号内的类型。

例:

int a=3,b=5;
printf("%f",(float)(a+b));

输出结果:
8.000000

(2),条件运算符及其表达式

形式:表达式1? 表达式2:表达式3

含义:若表达式1为真,则执行表达式2,否则执行表达式3。
(在后面我们会用IF条件语句将其代替)

例:

int a=3,b=5,c=6,max;
max=(a>b)? a:(b>c)? b:c;		//但有些情况下,还是很好用的
printf("%d",max);

输出结果:
6

(3),求字节运算符

形式:sizeof(数据类型名)或sizeof(表达式)

注意:sizeof常用于计算字符串所占空间的大小,其与strlen不同的是,后者是用来计算字符串的长度。

例:

int a,b,c,d;
    char str1[] = "abcde";
    char str2[8] = {'a'};
    char str3[] = "01234";

    a=sizeof(str1) ;
    b=sizeof(str2) ;
    c=sizeof(str3) ;
    d=strlen(str2);
    printf("%d\t%d\t%d\t%d",a,b,c,d);

输出结果:
6	8	6	1

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值