文章目录温馨提示,早晨期间,一定不要浏览视频或小说等娱乐软件,会使脑袋混乱,影响一天的状态!新的一天开始了,那就享受当下吧~
- 前言
- 1. sizeof与strlen的应用
- 1.1 sizeof 保留关键字,单目操作符
- 1.2 strlen 函数
- 2. 变量的生命周期
- 2.1 局部变量
- 2.2 全局变量
- 3. 详解转义字符
- 总结
前言
C语言,每个人都初识过,基本的语法都能会,但学完之后,又觉得自己太菜,总觉得有的深层知识点错过了,那么,今天跟随yena,看看还有哪些知识点你没有掌握呢~
1. sizeof与strlen的应用 1.1 sizeof 保留关键字,单目操作符
sizeof,注意它可不是函数,是C语言中的保留关键字,也可以认为是一种单目操作符,作用是获取数据在内存中所占用的存储空间,以字节为单位。
如上代码,因为sizeof不是函数,所以 printf(“%zun”, sizeof a);中,a可以不带括号哦。
注意,sizeof无法统计动态分配内存的大小,比如C++new出来的空间,sizeof无法统计。
strlen函数用于求字符串的长度,使用需要加上头文件
你来猜一下,下面代码的输出结果吧。
结果是6,22。第一个是正确的,为什么第二个数这么离谱呢?strlen函数是如何统计字符个数的呢,原来呀,strlen统计的是’ ’之前的字符个数,不包括’ ’,所以,只有遇到’ ’,它才知道字符串截止了,即’ ’是字符串截止的标志。所以如下代码,在下面的字符数组的结尾加一个’ ’就可以啦~
局部变脸是{}内部定义的变量,它的生命周期是,进作用域开始,出作用域结束,即它的作用域就是它所在的{}。
如上代码,在小{}内部定义的局部变量a,出了它的作用域,a的生命周期结束。因此,在小{}外打印生命周期已结束的a是非法的。
在{}外部定义的变量为全局变量,全局变量的生命周期是:整个程序的生命周期。
如
如上代码,当全局变量与局部变量名相同时,以局部变量值优先。
在C语言中,字符有两种表示方式,一种是直接书写出来,例如’A’,一种可以用’'后加ASCII码值表示,这种使用编码值来间接表示字符的方法为转义字符。
转义字符及释义
? 在书写连续多个问号时使用,防止他们被解析成三字母 词,在旧的编译器中,三字母词 ‘ ??) ’会转义为一个‘ ] ’,
’ ??( ’ 会转义为’ [ ’ 。
’ 用于表示字符常量 ’
" 用于表示一个字符串内部的双引号
用于表示一个反斜杠,防止它被解释为一个转义序列符。
a 警告字符,蜂鸣,不输出,会响一下
b 退格符
f 进纸符
n 换行
r 回车
t 水平制表符
v 垂直制表符
ddd ddd表示1~3个八进制的数字。 如: 130—>X
xdd dd表示2个十六进制数字。 如: x30—>0
注意:因为转义字符与ASCII码对应,ASCII码中最大能表示的数为十进制数127,故八进制最大值为’177’—>(十进制127)
十六进制最大值为’x7f’—>(十进制127)。
来做几道题检验一下吧
printf(“abcd efn”);
printf(“c:testtest.cn”);
printf(“a”);
printf(“abcndtefn”);
printf(“%cn”, ‘130’);
printf(“%cn”, ‘x063’);
printf(“%cn”, ‘’');
printf(“abcdefn”);
printf(“”n");
printf(“%dn”, strlen(“qwer t”));
printf(“%dn”, strlen(“c:test628test.c”));
公布答案,你都做对了吗?
注意最后一道题,‘t’ , ‘62’ 是一个转义字符哦~
附ASCII码表
总结
本节我们回顾了sizeof与strlen,变量的生命周期,转义字符,你学会了吗?不懂的地方可以在评论区留言,觉得有用就收藏起来,时常回顾吧,有不足的地方期待大家来完善,私聊yena也可以呀~



