一、变量
在将变量前,先解释一下声明和定义这两个概念。声明一个变量意味着向编译器描述变量的类型,但并不为变量分配存储空间。定义一个变量意味着在声明变量的同时还要为变量分配存储空间。在定义一个变量的同时还可以对变量进行初始化。
局部变量通常只定义不声明,而全局变量多在源文件中定义,在头文件中声明。
局部变量
在一个函数的内部定义的变量是内部变量,它只在本函数范围内有效。
自动变量auto
函数中的局部变量,其缺省格式是自动变量类型。例如,在函数体中int b, c=3; 和auto int b, c=3; 是等价的。
自动变量是动态分配存储空间的,函数结束后就释放。自动变量如不赋初值,则它的值是一个不确定的值。
静态局部变量static
静态局部变量是指在函数体内声明和定义的局部变量,它仅供本函数使用,即其他函数不能调用它。静态局部变量的值在函数调用结束后不消失而保留原值,即其占用的存储单元不释放,在下一次函数调用时,该变量已有值,就是上一次函数调用结束时的值。
静态局部变量在静态存储区分配存储单元,在程序的整个运行期间都不释放。静态局部变量是在编译时赋初值的,即只赋初值一次。
在SDT编译器中,建议对静态局部变量赋初值,否则该静态局部变量的初值为不确定值。在其他编译器中,未初始化的静态局部变量的初值可能为零,这由具体的编译器所决定,使用前最好测试一下。
寄存器变量register
带register修饰符的变量暗示(仅仅是暗示而不是命令)编译程序本变量将被频繁使用
C语言基本知识点
于 2022-03-11 20:30:12 首次发布
本文详细介绍了C语言中的变量类型,包括局部变量、自动变量、静态局部变量、寄存器变量和全局变量,强调了声明与定义的区别。此外,还讲解了函数的内部与外部函数,以及静态和外部函数的特性,强调了正确声明和定义函数的重要性。
摘要由CSDN通过智能技术生成