2021-06-05

Posted bit_zhy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2021-06-05相关的知识,希望对你有一定的参考价值。

1.数据类型及其大小

数据类型分类

char:用来定义字符型数据
short:用来定义短整型数据
int:用来定义整形数据
long:用来定义长整型数据
long long:用来定义更长的整形
float:用来定义单精度浮点数
double:用来定义双精度浮点数
(浮点数:小数点可以浮动(变换位置)的数)

数据类型所占空间大小

在这里我们要利用一个语法:sizeof数据类型名)来计算每种数据类型的大小,利用打印函数打印出来,实际操作如下:
在这里插入图片描述可以看到从上到下依次是1,2,4,4,8,4,8。其中long事实上是大小大于等于int的即可也就是4~8之间都有可能而不是一定是4。

2.变量

变量的分类及其作用域

1.局部变量:在固定的函数大括号区间内定义的变量,作用域只为其所在的大括号内即局部变量所在的局部范围。
2.全局变量:不在任何函数内定义的变量,作用域为整个项目,即使不是同一个源文件,也只需要声明一下外部变量就可以在不同的头文件之中使用。声明外部变量所用语法为: extern 变量类型 变量名

变量的生命周期

1.局部变量的生命周期:程序运行至进入局部变量所在的局部范围时,生命周期开始,程序运行出局部变量所在局部范围时,生命周期结束。
2.全局变量的生命周期:因为我们已经知道,main函数是整个C语言程序的入口,因此可以推出main函数的生命周期就是整个程序的生命周期,而全局变量只要一经定义,在main函数的任意位置都可以使用,因此,其生命周期就是程序的生命周期。

3.常量

字面常量

直接打出来的数字,直观的字面值的量就是字面常量。

const修饰的常变量

利用const int 变量名定义的变量叫做常变量,也就是说此时的变量无法再随意变换值,我们称其具有了常属性,但是究其本质,仍旧是一个变量,只不过是一个无法变换值的变量罢了,这就如同男人穿了裙子高跟鞋,但是本质仍然是男人一样。因此我们在利用它时有时不能像常量那样随心所欲,比方说定义数组大小时,利用常变量的话编译器会报错。

define定义的标识符常量

用法为:define 常量名 常量大小其中常量名习惯上以全部大写字母来定义。这是一种基本的定义常量。

枚举常量

利用创造枚举类型的方法一一列举出来的常量
枚举类型定义语法:enum 枚举名 { 常量1 常量2 常量三… };
枚举类型大括号中的量也是常量,也是无法改变的量。但是枚举常量如果没有一一赋予初始值的话,会默认从零开始递增。如果给中间常量赋初始值,剩下的也默认从该初始值一一递增。

4.字符串以及转义字符

字符串的定义以及赋初始值

字符串可以理解为用字母组成的一种数组,其定义方式有两种:
1.char 字符串名 [字符串长度(大小)] = { ’ ‘,’ ‘,’ ',… };
2.char 字符串名 [字符串长度(大小)] = “”;
第一种需要向每一个单引号中加入单个字母,最终组成一串字母,第二个中只需直接输入一串字母即可。

关于“\\0”:

“\\0”是表示一个字符串结束的标志,其主要体现在两个方面。
第一:我们在利用上述第一种方法定义字符串时,需要手动的在最后一个单引号中加如“\\0”这样才会使得我们定义的字符串的初始值是我们想要赋予的那些,如果不加“\\0”则会出现随机值,直到我们所规定的字符串大小全部填满或者出现下一个“\\0”。这是利用打印函数打印出的函数(%s)会不完全是我们所填充的初始值。上述第二种方法定义字符串时会默认将最后剩余的几项空间内自动全部填充为“\\0”。
第二:我们在计算字符串长度时,利用到了一个库函数:
strlen(字符串名)
其作为库函数的预指令为:#include <string.h>
我们如果在上述第一种定义方式中没有加“\\0”的话,那么strlen会一直查找下去直到出现一个“\\0”因此这时得出的字符串长度并非我们所定义的那样。
由此可以证明“\\0”是字符串的一个结束标志,意义非凡。

转义字符

在C语言中,通常有“\\ + 某一个字符”的组合出现,这种组合被成为转义字符。常见的有以下几种:在这里插入图片描述
值得一提的是后两个“\\ddd”和“\\xdd”是两个比较特殊的转义字符,其中ddd表示三个八进制数字,这时编译器会将该八进制的数字值转换为十进制,之后找到它对应的ASCII码,如果利用打印函数%c的方式可以发现该十进制代表的ASCII码的值对应的字符。计算字符串长度时,转义字符组合只占有一个字符的长度

总结

这就是今天我认为需要总结学习的笔记,通过写博客确实使得知识更加巩固,希望大家一起加油!共勉,目标大厂!

以上是关于2021-06-05的主要内容,如果未能解决你的问题,请参考以下文章

2021-06-05复习笔记

2021-06-05每天两点一线的生活

2021-06-05

2021-06-05:一个字符串至少需要添加多少个字符能整体变成回文串?

HTTP协议 2021-06-05

(VIP-朝夕教育)2021-06-05 .NET高级班 35-延迟加载详解