纵有疾风起,人生不言弃
1. 两种特殊的转义字符:\ddd 和 \xdd是什么?
\ddd和\xdd是表示字符的转义序列,\ddd表示一位三位八进制数,代表一个ASCII字符,\xdd是一个两位十六进制数,也代表一个ASCII字符
2. 指出里面哪些是转义字符,并给出运行结果
printf("%zd\n", strlen("c:\\test\128\abcd.c"));
运行结果为:14
3. C语言是结构化语言,他有哪几种结构?控制语句是什么?
结构:顺序结果、选择结构、循环结构。
控制语句:if、else、switch、for、while、do-while。
4. 为什么要写注释? 编译器是如何看待注释掉的代码的呢?VS2022如何批量注释代码呢?
注释是为了提高代码的可读性,帮助理解程序。编译器在预编译阶段会忽略注释。Ctrl+k+c为批量注释代码,Ctrl+k+u则为取消注释。
5. C语言也有布尔类型?如何使用?
从C99标准开始,C语言引入了 _Bool 类型,并提供了 <stdbool.h> 头文件,该文件定义了 bool 类型,其中 true 对应于1,false 对应于0。使用 <stdbool.h> 头文件后,可以方便地使用布尔类型进行编程。例如:
#include <stdbool.h>
bool flag = false;
在使用 <stdbool.h> 时,需要注意的是,尽管 _Bool 类型是C99标准的一部分,但并非所有的编译器都支持C99标准。因此,如果你的代码需要在不支持C99的环境中运行,你可能需要使用 int 或枚举类型来定义布尔值,或者确保你的编译器支持C99标准.
6. sizeof不是函数? sizeof还有返回值?? sizeof是在编译器工作的哪个时期运算的?
sizeof 是一个操作符,不是函数,它可以在编译时期计算数据类型的大小。sizeof 的返回值是一个 size_t 类型的值,表示数据类型的大小。
7 .下面这段代码为什么不输出3 ?为什么?
int a = 2;
sizeof(++a);
printf("%d", a);
sizeof(++a)并不会改变a的值,仅是计算++a的大小,并不会去计算表达式。
8. 了解一下头文件 limits.h 和 float.h
limits.h 包含了与整数类型相关的极限值,例如 INT_MAX、INT_MIN 等。
float.h 包含了与浮点类型相关的极限值,例如 FLT_MAX、FLT_MIN 等。
9. C语言的数据类型有哪四种? 不同的数据类型有不同取值范围? char类型是有符号还是无符号?
C语言的数据类型有基本类型(整型、字符型、浮点型、枚举类型)、构造类型(数组、结构体、联合体)、指针类型、空类型。不同的数据类型有不同的取值范围。char 类型默认是有符号的,但可以通过编译器的设置或使用 unsigned char 来定义为无符号的。
10. 变量创建的局部有限性原则究竟是什么?
变量创建的局部有限性原则指的是变量的作用域是有限的,它只在定义它的代码块中有效。
11. 局部变量和全局变量分别存在内存中的哪个位置?堆内如何存储变量?
局部变量存储在栈上,全局变量存储在静态存储区。
堆是动态内存的分配的区域,可以通过malloc、calloc等函数在堆上分配内存。