srtict

C Primer Plus 第12章 12.7 ANSI C的类型限定词

て烟熏妆下的殇ゞ 提交于 2019-12-02 18:10:48
您已经知道一个变量是以它的类型与存储类表征的。C90增加了两个属性:不变性和易变性。这些属性是通过关键字const和volatile声明的,这样就创建了受限类型(qualified type)。C99标准添加了第三个限定词resrict,用以方便编译器优化。 C99授予类型限定词一个新属性:它们现在是幂等的(idempotent)!这听起来像一个强大的功能,其实只意味着可以在一个声明 中不止一次地使用同一限定词,多余的将被忽略掉: const const const int n = 6; //相当于const int n = 6; 例如,这使下列序列可以被接受: typedef const int zip; const zip q=8; 12.7.1 类型限定词const 回顾一下,如果变量声明中带有关键字const,则不能通过赋值、增量或减量运算来修改该变量的值。在与ANSI 编译器中,下面的代码将产生一个错误信息: const int nochange; //把m限定为常量 nochange = 12; //不允许 然而,可以初始化一个const变量。因此,下面的代码是正确的: const int nochange = 12; //可以 上面的声明使nochange成为一个只读变量。在初始化以后,不可以再改变它。 例如,可以用关键字const创建一组程序不可以改变的数据: