C语言中的数据

来源:互联网 发布:网络连接4007 编辑:程序博客网 时间:2024/05/01 02:17

常量

1. int *pi;

//pi是一个普通的指向整型的指针。

int const *pci

//一个指向整型常量的指针。可以修改指针的值,但不能修改它所指向的值。

int *const cpi;

//声明pci为一个指向整型的常量指针。此时指针是常量,它的值无法修改,但可以修改它所指向的整型的值。

int const *const cpci;

//无论是指针本身还是它说指向的值都是常量,不允许修改。

 

链接属性

1. 在缺省情况下,链接属性为external,其余标识符的链接属性则为none

2. 如果某个声明在正常情况下具有external链接属性,在它前面加上static关键字可以使它的链接属性变为internal。例如:

static int b

那么b就将为这个源文件说私有。在其他源文件中,如果也链接到一个叫做b的变量,那么它说应用的是另一个不同的变量。

 

static关键字

当用于函数定义或代码块之外的变量声明时,static关键字用于修饰标识符的链接属性,从external改为internal,但标识符的存储类型和作用域不受影响。

当用于代码块内部的变量声明时,static关键字用于修改变量的存储类型,从自动变量改为静态变量,但变量的链接属性和作用域不受影响。

 

作用域、链接属性和存储类型总结

变量类型

声明的位置

存储位置

作用域

如果声明为static

全局

所有代码块之外

一般内存

从声明处至结尾

不允许从其他源文件访问

局部

代码块起始处

堆栈

整个代码块

变量不存储与堆栈中,它的值在程序整个执行期一直保持

形参

函数头部

堆栈

整个函数

不允许


0 0
原创粉丝点击