![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
文章平均质量分 68
xu-1107
这个作者很懒,什么都没留下…
展开
-
预处理(宏定义)
在C语言程序源码中,凡是以井号(#)开头的语句被称为预处理语句,这些语句严格意义上并不属于C语言语法的范畴,它们在编译的阶段统一由所谓预处理器(cc1)来处理。此处,PI 就是宏(宏一般习惯用大写字母表达,以区分于变量和函数,但这并不是语法规定,只是一种习惯),是一段特定的字串,这个字串在源码中出现时,将被替换为3.14。直观上看,无论 y 的取值是多少,表达式 y==200?宏(macro)实际上就是一段特定的字串,在源码中用以替换为指定的表达式。在书写非字符串的字串时(如上述例子),使用两边双井号来。原创 2023-08-22 17:13:13 · 69 阅读 · 1 评论 -
结构体、联合体、枚举
结构体、联合体、枚举原创 2023-08-21 20:07:04 · 38 阅读 · 1 评论 -
作用域——存储期
这里自动的含义,指的是这些变量的内存管理不需要开发者操心,都是全自动的:在变量定义处自动分配,出了变量的作用域后自动释放。这里静态的含义,指的是这些变量的不会因为程序的运行而发生临时性的分配和释放,它们的生命周期是恒定的,跟整个程序一致。在堆中分配的变量,统统拥有自定义存储期,也就是说这些变量的分配和释放,都是由开发者自己决定的。如果有多个不同的作用域相互嵌套,那么小范围的作用域会临时 “遮蔽” 大范围的作用域中的同名标识符,被 “遮蔽” 的标识符不会消失,只是临时失去可见性。原创 2023-08-21 19:52:07 · 34 阅读 · 1 评论 -
函数及特殊函数
思路:先输出前面的 n-1 个自然数,再输出最后一个自然数 n。而要输出前面的 n-1 个自然数,递归调用自身即可。函数调用时,进程的上下文会切换到被调函数,当被调函数执行完毕之后再切换回去。递归概念:如果一个函数内部,包含了对自身的调用,则该函数称为递归函数。示例:依次输出 n 个自然数。原创 2023-08-21 19:44:29 · 48 阅读 · 1 评论 -
内存的管理
但又由于这是一块系统“飞地”,所有的细节均由开发者自己把握,系统不对此做任何干预,给予开发者绝对的“自由”,但也正因如此,对开发者的内存管理提出了很高的要求。每个C语言进程都拥有一片结构相同的虚拟内存,所谓的虚拟内存,就是从实际物理内存映射出来的地址规范范围,最重要的特征是所有的虚拟内存布局都是相同的,极大地方便内核管理不同的进程。例如三个完全不相干的进程p1、p2、p3,它们很显然会占据不同区段的物理内存,但经过系统的变换和映射,它们的虚拟内存的布局是完全一样的。原创 2023-08-21 19:33:19 · 29 阅读 · 1 评论 -
指针的初阶
a&aint *p;赋给指针的地址,类型需跟指针的类型相匹配。所谓索引,指的是通过指针,取得其指向的目标。原创 2023-08-21 19:26:28 · 24 阅读 · 1 评论 -
数组的初阶
【代码】c#数组初阶。原创 2023-08-21 19:11:11 · 24 阅读 · 1 评论 -
C语言学习方向
数据类型运算符控制流数组初始指针初始数组进阶指针进阶内存管理函数作用域组合类型预处理(宏)文件组织。原创 2023-08-21 16:53:58 · 37 阅读 · 0 评论 -
C语言(运算符)
【代码】C语言(运算符)原创 2023-08-21 18:39:33 · 32 阅读 · 0 评论 -
控制流(判断语句)
【代码】控制流(判断语句)原创 2023-08-21 18:57:21 · 37 阅读 · 1 评论