c语言
文章平均质量分 73
用于总结c语言的一些知识点
Ineffable__
这个作者很懒,什么都没留下…
展开
-
static 关键字
我们知道在局部函数定义的变量,当程序执行到它的定义处时,编译器为它在栈上分配空间,函数在栈上分配的空间在此函数执行结束时会释放掉,这样就产生了一个问题: 如果想将函数中此变量的值保存至下一次调用时,如何实现?最容易想到的方法是定义为全局的变量,但定义一个全局变量有许多缺点,最明显的缺点是破坏了此变量的访问范围(使得在此函数中定义的变量,不仅仅只受此函数控制)。非静态全局变量的作用域是整个源程序, 当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。即使函数返回,它的值也会保持不变。原创 2022-08-19 23:38:19 · 78 阅读 · 0 评论 -
每一个变量的地址是什么时候确认的?
谭浩强老先生的《C程序设计》中关于变量名的描述:“变量名实际上是一个符号地址,在对程序编译连接时由系统给每一个变量名分配一个内存地址。在程序中从变量中取值,实际上是通过变量名找到相应的内存地址,从其存储单元中读取数据。”总结:变量名就是编译期存在于编译器中的一个符号地址,编译或链接的时候,编译器或者链接器会给每个变量确定内存地址或偏移,并且通过符号表的方式将变量名和地址的映射关系保存起来,当代码中进行变量访问时,实际上是编译器通过变量名找到对应的内存地址,将变量名操作替换为内存地址操作,运行时程序访问该内原创 2022-07-03 22:34:15 · 653 阅读 · 0 评论 -
堆与栈的区别?
堆(Heap)与栈(Stack)是开发人员必须面对的两个概念,在理解这两个概念时,需要放到具体的场景下,因为不同场景下,堆与栈代表不同的含义。一般情况下,有两层含义:(1)程序内存布局场景下,堆与栈表示两种内存管理方式;(2)数据结构场景下,堆与栈表示两种常用的数据结构。栈由操作系统自动分配释放 ,用于存放函数的参数值、局部变量等,其操作方式类似于数据结构中的栈。int main(){int b; //栈char s[] = “abc”; //栈char p2; //栈}其中函数中定义的局原创 2022-07-03 22:31:32 · 103 阅读 · 2 评论 -
简述头文件的作用, 如何解决头文件重复包含导致的问题?
h文件作用:1.方便开发:包含一些文件需要的共同的常量,结构,类型定义,函数,变量申明;2.使函数的作用域从函数声明的位置开始,而不是函数定义的位置(实践总结);3 .提供接口:对一个软件包来说可以提供一个给外界的接口(例如: stdio.h)。4、加强类型检查,提高代码的类型安全性;5、减少代码的重复书写,提高编写和修改程序的效率;4、提供保密和代码复用的手段,用户只需要按照头文件的接口声明来调用库功能,编译器会从库中提取相应的代码。...原创 2022-07-03 22:36:47 · 682 阅读 · 0 评论