- 博客(9)
- 收藏
- 关注
原创 【C语言】sizeof和strlen详解,以及它们的主要区别
sizeof 运算符用于计算变量、类型或表达式的大小(字节数),包括静态分配的数组、动态分配的内存块、数据类型等。strlen 是一个函数,其作用是返回一个字符串的长度,即字符串中字符的个数(不包含字符串结尾的空字符 \0)。strlen 函数只适用于以’\0’结尾的有效字符串,也就是字符数组或指针指向的以 ‘\0’ 结尾的字符序列。strlen 函数用于计算以 ‘\0’ 结尾的字符串的长度,即字符串中字符的个数(不包括终止符 ‘\0’)。接下来看看sizeof求解各个数据类型所占内存空间的大小吧。
2023-07-19 16:15:20
428
原创 【C语言】一篇文章学完指针进阶
数组指针是指向数组的指针,它可以用于访问和操作数组的元素。//解释:p先和*结合,说明p是一个指针变量,然后指着指向的是一个大小为10个整型的数组。所以p是一个指针,指向一个数组,叫数组指针。//这里要注意:[]的优先级要高于*号的,所以必须加上()来保证p先和*结合。
2023-05-21 16:56:11
170
2
原创 【C语言】文件操作详解
在C语言中,流是指一组从某个源中获取或向某个目标中发送数据的机制,其基本操作包括读取和写入。对于输入流而言,程序可以从流中读取数据,并在读取完成后关闭该流;对于输出流而言,程序可以将数据写入到流中,并在写入完成后关闭该流。
2023-05-16 13:15:28
362
2
原创 【C语言】动态内存管理
malloc函数(动态内存开辟的函数),从堆区中分配一块指定大小的内存空间,并返回该内存空间的首地址。该函数的作用是在堆区中分配(开辟)一段指定大小的内存空间,返回该内存段的首地址。其中,size参数表示需要分配的内存空间的大小,单位是字节。如果开辟成功,则返回一个指向开辟好空间的指针。如果开辟失败,则返回一个NULL指针,因此malloc的返回值一定要做检查。free函数(动态内存的释放和回收的函数)该函数的作用是释放由malloc函数分配(开辟)的内存空间。
2023-04-11 19:47:05
192
原创 【C语言】结构体内存对齐详解
结构体总大小为最大对齐数的整数倍(包含s1和s2的成员的最大对齐数),最大对齐数为8,故总大小是8的整数倍,那么总大小就是56个字节,所以输出结果是56。结构体总大小为最大对齐数的整数倍(包含s1的成员的最大对齐数),最大对齐数为8,故总大小是8的整数倍,那么总大小就是24个字节,所以输出结果是24。s1是结构体,占12个字节,对齐到自己的最大对齐数的整数倍处(即对齐数是4),对齐到4的整数倍的位置,即偏移量为12开始的地址处。s1是结构体,占12个字节,对应到结构体变量偏移量为0 开始的地址处。
2023-04-09 19:54:08
329
1
原创 【C语言】结构体详解(定义、访问、初始化、自引用和传参)
结构体是一种用户自定义的数据类型,它允许存储不同类型的数据项。结构体由一系列具有相同类型或不同类型的数据成员构成,可以像基本数据类型一样被声明和使用。其中,结构体名为自定义的标识符,可以是任何合法的标识符;成员可以是基本数据类型(例如 int、float、char 等),也可以是其他结构体类型、指针类型等。例如,我们可以定义一个表示学生信息的结构体,包括姓名、年龄和分数。int age;我们可以使用这个结构体来定义一个 Student 类型的变量。
2023-04-08 17:50:31
2866
1
原创 【C语言】const char* p、 char const* p、 char* const p、 和const char* const p的区别
const char p*:表示p是一个指向常量字符的指针,即指针所指向的字符是不可修改的,但指针p本身是可以修改的。char const p和const char p**是等价的,也表示p是一个指向常量字符的指针,即指针所指向的字符是不可修改的,但指针本身是可以修改的。char const p*:表示p是一个指向字符的常量指针,即指针本身是不可修改的,但指针所指向的字符是可以修改的。
2023-03-28 17:52:21
786
原创 【C语言】操作符详解
1. 除了 % 操作符之外,其他的几个操作符可以作用于整数和浮点数。2. 对于 / 操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法。3. % 操作符的两个操作数必须为整数。返回的是整除之后的余数。
2023-03-25 17:34:33
494
5
原创 C语言中的if语句的用法及简单if语句的替代
判断if语句中的条件表达式是否为真(0表示假,非0表示真)。如果条件表达式为真,则执行if语句中的代码块;否则跳过if语句,继续执行后面的代码。如果if语句后面有else语句,则在条件表达式为假时执行else语句中的代码块。如果if语句中只有一条语句,则可以省略代码块的大括号。
2023-03-25 00:00:56
2295
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人