1.在C语言中,仅有四种数据类型:整形,浮点型,指针,聚合型
2.申明常量的时候,对于例如int类型,int const a 和 const int a效果相同
但是对于指针申明的时候有区别,比如int const *a表示指向一个常量的指针,常量不可以改变但是指针可以改变
而 int *const a表示一个常量指针,指针不能改变,但是可以改变指向的整型
3.链接属性:我们设想一下,当多个文件进行链接的时候,如果有多个变量的名字一样,该如何解释他们?
链接属性有三种:external internal 和none . none总是被当作单独的个体,属于internal在同一个源文件中被认为指向同一个个体,而在不同源文件分属不同的个体,而external标识符都表示同一个个体。
extern 和static用于改变链接属性,static可以防止函数和变量被其他源文件使用,
4.存储类型:
一共有三个地方可以用于变量存储:普通内存 , 运行时堆栈,硬件寄存器
凡是在任何代码块之外声明的变量总是存储于静态内存中,称为static变量,在程序运行之前创建。
最后register关键词可以用于经常使用的几个变量
5.static关键字的总结
当static用于代码块外的变量声明,或函数声明的时候,static改变链接属性
而static用于代码块内变量声明的时候,static把变量改变为静态变量
原文:https://www.cnblogs.com/JasonJ/p/14810581.html