在 C 语言中通过指针访问结构体内存
摘要:在 C 语言中,指针是用于引用内存地址的变量,通过指针可以有效地访问和操作内存。即使未显式创建结构体实例,只要指向的内存区域足够大且对齐方式正确,指针也能够按照特定结构体的布局访问数据。以下是这个机制的详细解读。 1. 指针与内存布局 指针的类型(如 Block*)告诉编译器 如何解释其指向的内存。
阅读全文
posted @
2024-10-15 23:05
Dylaris
阅读(109)
推荐(0) 编辑
C语言中输入/输出缓冲区行为乱序的问题
摘要:问题代码 这一串代码就是输出提示,读取输入,这样做3遍 但是看到运行结果会发现,第二个和第三个的提示字符串输出到同一行了,没法输入操作符 原因 这是因为输入缓冲区的缘故 当我们输入第一个数字1的时候,按下回车确认,但同样的,回车的 换行符也同样保留在输入缓冲区了, 数字1被读取消耗掉了,所以输入缓冲
阅读全文
posted @
2024-10-13 23:19
Dylaris
阅读(36)
推荐(0) 编辑
c语言中的变量存储区域
摘要:栈 局部变量和函数参数通常存储在栈中。函数调用时,栈空间用于存储函数参数、返回地址和局部变量。 int func(const char *str1, char *str2, int count) { count++; printf("%s %s\n", str1, str2); return cou
阅读全文
posted @
2024-10-06 14:03
Dylaris
阅读(80)
推荐(0) 编辑
stdio流缓冲区
摘要:文件流缓冲区 每个进程都各自维护一个文件流表,和文件描述符表类似,并且这些文件流都有自己对应的缓冲区 缓冲区的设计就是为了减少磁盘io,加快io的速度 缓冲区模式 通过setvbuf或者setbuf两个函数设置缓冲区的模式 无缓冲区 就是禁用缓冲区的意思,这种模式下,就相当于直接调用write函数,
阅读全文
posted @
2024-10-02 20:17
Dylaris
阅读(11)
推荐(0) 编辑
c语言中的链接性和作用域
摘要:什么是链接性 链接性 指的是标识符(如变量、函数)在多个翻译单元(通常是多个源文件)之间共享和可见的能力。链接性决定了标识符的作用范围,即它能在多大范围内被访问或引用 链接性 无链接性:标识符只能在局部作用域内使用,通常用于局部变量 内部链接性:标识符只能在定义它的文件内使用,使用 static 关
阅读全文
posted @
2024-10-01 20:08
Dylaris
阅读(49)
推荐(0) 编辑
volatile关键字
摘要:volatile 是 C 和 C++ 编程语言中的一个关键字,用于修饰变量,指示编译器该变量可能在程序的某个地方被外部因素改变。它常用于多线程编程、嵌入式系统和与硬件交互的场景 用途 防止优化:当变量被声明为 volatile,编译器不会对该变量进行优化。这意味着每次访问该变量时,编译器都会从内存中
阅读全文
posted @
2024-09-30 16:32
Dylaris
阅读(24)
推荐(0) 编辑
strcpy、strncpy和strdup
摘要:strcpy 用途:复制字符串,包括空字符(\0) 语法:char *strcpy(char *dest, const char *src); 注意:没有边界检查,目标缓冲区必须足够大,否则可能导致缓冲区溢出 strncpy 用途:复制指定长度的字符串,不会超过指定的字符数 语法:char *str
阅读全文
posted @
2024-09-25 23:10
Dylaris
阅读(40)
推荐(0) 编辑
getopt函数的使用
摘要:getopt函数 int getopt(int argc, char * const argv[], const char *optstring); 头文件: #include<unistd.h> 参数: argc: 命令行参数的数量 **argv*8: 一个字符串数组,包含所有命令行参数 **op
阅读全文
posted @
2024-09-25 23:04
Dylaris
阅读(43)
推荐(0) 编辑
c指针详解(2)--- 指针与数组
摘要:在大致了解了c语言中变量在内存中的分配、存活等方面后,我们再来看看数组在内存中又是如何呈现的。 这里我们就只讨论静态数组,动态数组涉及到动态内存分配,这里就不详细展开了。 那么什么是静态数组呢?要理解这个数据结构,我们可以将其切分为两个概念:静态与数组。 数组:数组其实就是一系列具有相同类型的元素的
阅读全文
posted @
2024-07-01 12:09
Dylaris
阅读(18)
推荐(0) 编辑
c指针详解(1)--- 变量、函数在内存中是什么样的?
摘要:内存是什么样的/如何存储数据 应用程序的内存区段图 内存是什么样的/如何存储数据:计算机的内存一般是一个字节就对应一个地址,按字节寻址 单位介绍: 字节(Byte),是计算机常用的一个单位 位(bit),1个字节是8位,位只有0和1两种表示(二进制) 如下: 前面的是内存地址(随便举例的), 后面的
阅读全文
posted @
2024-06-22 23:01
Dylaris
阅读(101)
推荐(0) 编辑