![](https://img-blog.csdnimg.cn/20190918140037908.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C语言提高
内存分布,指针强化,函数指针
lhlc67
这个作者很懒,什么都没留下…
展开
-
06-链表
【代码】06-链表。原创 2023-11-09 14:25:45 · 47 阅读 · 1 评论 -
05-函数指针、预处理、动态库、递归
一个函数在编译时被分配一个入口地址,这个地址就称为函数的指针,函数名代表函数的入口地址。函数三要素: 名称、参数、返回值。C语言中的函数有自己特定的类型。函数指针写法: 返回值类型 + (指针变量名)(形参列表)原创 2023-11-09 14:24:14 · 55 阅读 · 1 评论 -
04-文件
【代码】04-文件。原创 2023-11-09 14:23:40 · 41 阅读 · 1 评论 -
03-数组和结构体
/ 这种最好理解,最常用// 3.直接定义数组指针// 语法 数组元素类型 (*数组指针变量名称) [元素个数]i < 5;i++) {// 1.先定义出数组的类型,在通过类型定义出数组指针// 这行代码使用 typedef 关键字创建了一个类型别名 ARRAY_TYPE,该// 别名表示了一个包含5个整数的数组类型// ARRAY_TYPE* arrP就是一个指针了, 指针指向包含4个int元素的数组 与 int(*p)[4] 等价。原创 2023-11-09 14:22:05 · 33 阅读 · 1 评论 -
02-指针强化
然而,这个操作是不合法的,因为字符串常量是不可修改的,尝试将其赋值给一个字符数组会导致未定义的行为。要修复这个问题,你可以将 buf 声明为字符数组,并初始化为字符串常量的内容,但是你需要确保数组大小足够容纳字符串以及一个 null 结尾字符 ‘\0’,因为 C 字符串必须以 null 结尾。可以不指定buf的大小,编译器会根据初始化字符串的长度自动分配足够的空间,而且字符串也会以‘\0’结尾。这里需要注意,获取文件行数之后,需要将文件光标置首,不然会影响后面的读。在主调函数中分配内存,被调函数使用。原创 2023-11-09 14:20:25 · 32 阅读 · 1 评论 -
01-内存分布
程序在加载到内存前,代码区和全局区(data和bss)的大小就是固定的,程序运行期间不能改变。栈是一种先进后出的内存结构,由编译器自动分配释放,存放函数的参数值、返回值、局部变量等。在程序运行过程中实时加载和释放,因此,局部变量的生存周期为申请到释放该段栈空间。存入的是全局未初始化变量和未初始化静态变量。未初始化数据区的数据在程序开始执行之前被内核初始化为 0 或者空(NULL)。该区包含了在程序中明确被初始化的全局变量、已经初始化的静态变量(包括全局静态变量和t)和常量数据(如字符串常量)。原创 2023-11-09 14:19:21 · 33 阅读 · 1 评论