第335页 | C Primer Plus 中文版 | 阅读 ‧ 电子书库

同步阅读进度,多语言翻译,过滤屏幕蓝光,评论分享,更多完整功能,更好读书体验,试试 阅读 ‧ 电子书库

 总结:存储类关键字:auto, extern, static, register总体注解:变量的存储类决定了它的作用域、链接和存储持续时间。存储类由声明变量的位置和与之相关联的关键字来决定。在所有的函数之外定义的变量是外部变量,其作用域为整个文件,具有外部链接,静态存储持续时间。除非使用了其他关键字,在函数中声明的变量是自动变量,具有代码块作用域,空链接,自动存储持续时间。在函数中使用关键字static定义的变量具有代码块作用域,空链接,静态存储持续时间。而在函数外使用关键字static定义的变量具有文件作用域,内部链接和静态存储持续时间。属性:下表对存储类进行了总结。

 

 

存 储 类 持续时间 作用域 链 接 声明方式 自动 自动 代码块 空 代码块内 寄存器 自动 代码块 空 在代码块内使用关键字register 具有外部链接的静态 静态 文件 外部 在所有函数之外 具有内部链接的静态 静态 文件 内部 在所有函数之外使用关键字static 具有空链接的静态 静态 代码块 空 在代码块内使用关键字static 说明:关键字extern只用来重新声明已经在其他地方定义过的变量。在函数外定义变量会使它成为外部变量。

除了这些存储类,C还提供了可分配内存(allocated memory)。这种内存通过调用malloc()函数系列中的一个函数来分配,它返回一个可以用来访问内存的指针。在调用free()函数或程序终止之前该内存保持已分配状态。任何可以访问指向该内存的指针的函数都可以访问这块内存。例如,一个函数可以把指针值返回给另一个函数,另一个函数就可以对内存进行访问。

B.3.3 总结:限定词

关键字

使用下列关键字来对变量起到限定作用:

const,volatile, restrict

总体注解

限定词用来限制使用变量的方式。const变量在初始化之后就不能被改变。编译器不能假定一个volatile变量不被外部代理(例如一个硬件更新)改变。为restrict所限定的指针被理解为提供对一块内存的惟一访问手段(在特定的作用域中)。

属性

声明:

建立了一个变量joy,它的值固定为101。

声明:

表明incoming在程序中的两次出现之间它的值可能会发生改变。

声明:

表明指针ptr不能用来改变变量joy的值。但是指针可以被指向另一个位置。

声明:

表明不能对指针ptr的值进行改变,也就是说它只能指向joy。但是可以使用它来改变joy的值。

原型:

表明在形式参数s被初始化为在函数调用中传递给simple()的任何值之后,simple()不能改变s指向的值。

原型:

及其等价原型:

表明函数supple()不会改变参量pi的值。

原型:

说明p1和p2是访问它们分别指向的内存块的惟一方法,这意味着这两个块之间不能重叠。

请支持我们,让我们可以支付服务器费用。
使用微信支付打赏


上一页 · 目录下一页


下载 · 书页 · 阅读 ‧ 电子书库