1.两种特殊的转义字符:\ddd 和 \xdd是什么?
(1)\ddd:这是一个八进制转义序列,其中 ddd 代表一个或多个八进制数字(0-7),用于表示 ASCII 码值对应的字符
(2)\xdd:这是一个十六进制转义序列,其中 dd 代表两个十六进制数字(0-9,A-F,a-f),用于表示 ASCII 码值对应的字符
2.指出里面哪些是转义字符,并给出运行结果[机智]printf(“%zd\n”, strlen(“c:\test\128\abcd.c”));
(1)转义字符有:\(反斜杠),\12(八进制转义),\a(警告字符,会蜂鸣),\b(退格符),\f(换页),\n(换行),\r(回车),\t(水平制表符),\v(垂直制表符)
3.C语言是结构化语言,他有哪几种结构?控制语句是什么?
(1)结构包括顺序结构、选择结构(如 if-else、switch)、循环结构(如 for、while、do-while)
控制语句用于控制程序的执行流程,包括条件判断、循环、跳转等
4.为什么要写注释? 编译器是如何看待注释掉的代码的呢?VS2022如何批量注释代码呢?
(1)写注释是为了提高代码的可读性和可维护性,方便他人理解代码的功能和逻辑
(2)编译器在编译过程中会忽略注释,不对其进行处理
(3)VS2022中,可以使用快捷键 Ctrl+K, Ctrl+C 批量添加注释,Ctrl+K, Ctrl+U 批量取消注释
5.C语言也有布尔类型?如何使用?
(1)C语言本身没有内置的布尔类型,但是在C99中引入了布尔类型,专门用来创建表示真/假的变量
(2)布尔类型的使用必须包含头文件 <stdbool.h>
(3)布尔类型变量的取值是:true 或者 false
(4)如果没有布尔类型则用“0”和“非0”表示真假
6.sizeof不是函数? sizeof还有返回值?? sizeof是在编译器工作的哪个时期运算的?
(1)sizeof 不是函数,它是一个操作符,用于获取数据类型或变量的大小(以字节为单位)
(2)sizeof 确实有返回值,返回的是类型或变量占用的字节数
(3)size_t – 是一种类型,是专门为 sizeof 设计的,就是sizeof的返回值的类型
(4)size_t 其实是一种无符号的整形
7.下面这段代码为什么不输出3 ?为什么?
sizeof(++a);
printf("%d", a);
(1)因为sizeof中的表达式不参与计算,所以 ++a 并没有被执行,a 的值仍然是 2
8.C语言的数据类型有哪四种? 不同的数据类型有不同取值范围? char类型是有符号还是无符号?
(1)基本数据类型分为**:整型**(int, short, long)、浮点型(float, double)、字符型(char)和其他类型(如指针、枚举等)
(2)不同数据类型的取值范围不同,这取决于它们的位数和是否有符号
(3)char 类型默认是有符号的,但可以通过指定 unsigned 关键字使其成为无符号
9.变量创建的局部有限性原则究竟是什么?
(1)局部有限性原则指的是变量的作用域和生命周期应该尽可能地限制在它们被使用的最小范围内,这样可以避免不必要的内存占用和潜在的命名冲突
10.局部变量和全局变量分别存在内存中的哪个位置?堆内如何存储变量?
(1)栈区是放局部变量的
(2)堆区是放动态内存分配:malloc,free,calloc,realloc
(3)静态区是放全局变量
拓展:
(4)我觉得理解局部变量优先,可以看成局部变量只是在局部范围内更新全局变量
(5)变量创建的本质是:在内存申请一块空间(鹏哥理解)
11. ASCII的几组特殊数字
(1)字符a – z的ASCII码值从97 – 122
(2)对应的大小写字符(a和A)的ASCII码值的差值是32
(3)数字字符0 – 9的ASCII码值从48 – 57
(4)换行\n的ASCII值是: 10
(5)\0的ASCII值是: 0
(6)在这些字符中ASCII码值从0 – 31 这32个字符是不可打印字符,无法打印在屏幕上观察
12.了解一下头文件 limits.h 和 float.h (本人现在也不是很了解,这个百度的,可以看一下)
(1)limits.h 和 float.h 头文件简介
limits.h 和 float.h 是 C 语言标准库中的两个头文件,它们分别提供了关于整数类型和浮点类型的大小限制的详细信息
(2)limits.h
limits.h 包含了一系列宏定义,这些宏定义描述了不同整数类型的最大值和最小值,以及其他相关的特性
例如,它定义了 CHAR_BIT(一个字符类型占多少位)、INT_MIN(int 类型的最小值)、INT_MAX(int 类型的最大值)、LONG_MIN、LONG_MAX、FLOAT_MAX、DOUBLE_MAX 等等。这些宏可以帮助开发者理解和利用不同数据类型的存储范围和行为
(3)float.h
float.h 则专注于浮点数类型,它定义了浮点数的精度和范围的宏观常数
例如,FLT_MAX 和 FLT_MIN 分别代表 float 类型能表示的最大和最小正数值,而 DBL_MAX 和 DBL_MIN 则对应 double 类型。此外,float.h 还定义了浮点数运算的精度限制,如 FLT_EPSILON 表示 float 类型的最小正非零差异