学习笔记6 字符类型,字符计算,逃逸字符,自动类型转换,强制类型转换,bool,逻辑运算,运算符优先级,短路,条件运算符,逗号运算

字符类型

char   是一种整数,也是一种特殊的类型:字符

这是因为:用单引号表示的字符字面量: ‘a’   ,‘1’,

   ‘’  也是一个字符

printf和scanf用%c来输入,输出字符


如何输入‘1’这个字符给 char c

scanf(“%c”,&c);    →  1

scanf(“%d”,&i);c=i;   →49


字符计算

char c=‘A’;

c++;

printf(“%c\n”,c);

int  i=‘Z’-'A';

printf("%\n",i);

一个字符加一个数字得到ASCLL表9中那个数之后的字符

两个字符的减得到它们在表中的距离


大小写转换

字母在ASCLL表中是顺序排列的

大写字母和小写字母是分开排列的,并不在一起

'a'-'A'可以得到两段间的距离,于是

a+'a'-'A'可以把一个大写字母变成小写字母

a+'A'-'a'可以把一个小写字母变成大写字母


逃逸字符

用来表达无法印出来的控制字符或特殊字符,它由一个反斜杠符“\”开头,后面跟上另一个字符,这两个字符连起来组成一个字符

字符                意义          

\b             回退一格(让下一个位置上的东西回到上一格不删除)

\t               到下一个表格位

\n                 换行

\r                   回车

\"               双引号

\'                单引号

\\              反斜杠本身

\t             每行的固定位置

一个\t使得输出从下一个制表位开始,用\t才能使得上下两行对齐


 

自动类型转换

当运算符两边出现不一致的类型时会自动转换为较大类型

大的意思是能表达的数的范围更大

char→short→int→long→longlong

int→float→double

 对自动转换类型

对于printf,任何小于int的类型会被转换成int,float会被转换成double

但是scanf不会,要输入short,需要%hd

强制类型转换

要把一个量转换成另一个类型,通常是转小的类型需要(只是从那个变量计算出了一个新的类型的值,它并不改变那个变量,无论是值还是类型都不改变)

(类型)值

  • (int)10.2
  • (short)32

注意此时的量的安全性,小的变量不用能表达大的量

  • (short)32768

强制类型转换的优先级高于四则运算


bool

#include  <stdbol.h>

之后就可以用  bool   和   true  ,  false


逻辑运算

逻辑运算是对逻辑进行的运算,结果只有0或1

逻辑量是关系运算或逻辑运算的结算

运算符       描述          示例           结果

!               逻辑非        !a       如果a是true,结果是false

                                              如果a是false,结果是true

&&           逻辑与       a&&b   如果a和b结果true果                                                        就是true,否则就是false

||              逻辑或      a||b    如果一个是true,结果是                                                  true,两个都是false,结果                                                  是false

  • 如何判断一个字符是大写字符
  • c>='A'&&c<='z'

!age<20   先做!age ,结果为0或1

单目运算符优先级高于双目运算符

!>&&>||

优先级        运算符          结合性

1               ()                  从左到右

2               ! + - ++ --     从右到左(单目的+和-)

3              % * /              从左到右

4             +  -                   从左到右

5            < <= > >=         从左到右

6             ==   !=             从左到右

7            &&                  从左到右

8            ||                    从左到右

9         = += -= 

           *=  /=  %=          从右到左


短路

逻辑运算为自左向右进行,如果左边的结果已经能够决定结果,就不会做右边的结果

对于&&,左边是false,就不做右边

对于||,左边是true时,就不做右边

不要把赋值包括复合赋值写进表达式


条件运算符

count = (count> 20) ? count -10 : count+ 10;

条件、条件满足时的值和条件不满足时的值

?前表示条件

?后表示条件满足时的值

:后表示条件啊满足时的值

条件运算符的优先级高于赋值运算符,但是低于其他运算符

条件运算符是自右向左运行的


逗号运算

逗号用来连接两个表达式,并以其右边的表达式的值作为它的结果。逗号的优先级是所有的运算符中最低的,所以它两边的表达式会先计算;逗号的组合关系是自左向右,所以左边的表达式会先计算,而右边的表达式的值就留下来作为逗号运算的结果。

逗号运算主要在  for 中使用

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值