关键字const
1.修饰变量。
修饰的对象为常量,只读。
2.修饰指针。
const 也可以和指针变量一起使用,这样可以限制指针变量本身,也可以限制指针指向的数据。
const 离变量名近就是用来修饰指针变量的,离变量名远就是用来修饰指针指向的数据,如果近的和远的都有,那么就同时修饰指针变量以及它指向的数据。
3.修饰函数的参数。
用在函数形参中,如果形参是一个指针,为了防止在函数内部修改指针指向的数据,就可以用 const 来限制。
关键字static
用于定义全局静态变量
1、修饰局部静态变量
存储在静态存储区,在程序整个运行期间都不释放。在所处模块初次运行时进行初始化工作,且只操作一次。
2、修饰外部静态变量/函数
用来表示不能被其他文件访问的全局变量和函数。但为了限制全局变量/函数的作用域,函数或变量前加static使得函数成为静态函数。但此处“static”的含义不是指存储方式,而是指对函数的作用域仅局限于本文件(所以又称内部函数)。注意此时,对于外部(全局)变量,不管是否有static限制,它的存储区域都是在静态存储区,生存期都是全局的。此时的static只是起作用域限制作用,限定作用域在本模块(文件)内部。
关键字auto
即为自动局部变量,存储在栈上,当函数结束时,随之释放。
关键字extren
声明变量是在其他文件正声明(也可以看做是引用变量)。
关键字register
声明寄存器变量。
关键字volatile
说明变量在程序执行中可被隐含地改变。
变量如果加了 volatile 修饰,则会从内存重新装载内容,而不是直接从寄存器拷贝内容。
确保本条指令不会因编译器的优化而省略,且要求每次直接读值。
关键字typedef
数据结构的表示(存储结构)用类型定义(typedef)描述。
与#define不同,typedef创建的符号名只受限于类型,不能用于值。
typedef由编译器解释,不是预处理器。
C语言学习笔记--enum和sizeof关键字
1.enum关键字 C语言中enum关键字用来定义枚举类型 (1)enum 是 C 语言中的一种自定义类型(2)enum 值是可以根据需要自定义的的整型值(3)第一个定义的 enum 值默认为 0 ( ...
C语言学习笔记--const 和 volatile关键字
1.const关键字 (1)const 修饰的变量是只读的,它不是真正的常量,本质还是变量,只是告诉编译器不能出现在赋值号左边! (2)const 修饰的局部变量在栈上分配空间 (3)const 修饰 ...
C语言学习笔记--struct 和 union关键字
1.struct关键字 C 语言中的 struct 可以看作变量的集合struct中的每个数据成员都有独立的存储空间. 结构体与柔性数组 (1)柔性数组即数组大小待定的数组 (2)C 语言中可以由结构 ...
【C语言学习笔记】存储类、链接和内存管理
因为对内存管理部分一直没有很清楚的思路,所以一直在找资料想系统看一下这部分的内容.在C primer plus里看到了这一章,虽然大多都是心知肚明的东西,但是还是很多概念性系统性的东西让我眼前一亮,把 ...
C语言学习笔记1-数据类型和标识符
http://blog.csdn.net/jadeshu/article/details/50751901 1.数据类型 ---1.1基本类型 --------------数值型(short(2) i ...
Go语言学习笔记(9)——接口类型
接口 Go 语言提供了另外一种数据类型即接口,它把所有的具有共性的方法定义在一起,任何其他类型只要实现了这些方法就是实现了这个接口. /* 定义接口 */ type interface_name in ...
初步swift语言学习笔记2(可选类型?和隐式可选类型!)