变量的定义,初始化和声明


变量的定义、初始化和声明在学高级编程语言时已经讲到过的,不过通过自己的编程经验,这里面有一些基本的本质问题要掌握。

1-definition 变量的定义
变量的定义主要是为变量申请内存空间用。(编译器要管理该变量名字和申请该变量的内存大小)
比如: QObject * myobject;
int x;
第一个语句是定义一个指针类型的变量myobject,4个字节的内存空间。(在这里一定要与QObject * myobject=new QObject;这个语句区别开,也就是说要把指针变量本身的内存指针变量指向的内存区分开!)
第二个语句是定义一个整型类型的变量x,4个字节的内存空间。

2-initilization 变量的初始化
变量的初始化主要为在申请到的内存中赋初值。(编译器要在该变量的内存中初始化初值,为后面使用该变量做准备,否则其内存中的值是随机的。)
比如: myobject=NULL;
x=10;
第一个语句是给变量myobject赋值NULL,因为上面刚定义了这个变量,但其4个字节内的值还是随机的,并没有赋值,这里初始化为NULL。
第二个语句是给变量x赋值10,因为上面刚定义了这个变量,但其4个字节内的值还是随机的,并没有赋值,这里初始化为10。

通常变量的定义和初始化可以在一条语句内完成。
比如: QObject * myobject=NULL;
int x=10;

3-declaration 变量的声明
变量的声明是说明该变量已经被定义过,(编译器要在已经定义的表中查找该变量的位置)
比如: extern QObject * myobject;
extern int x;
第一个语句是声明一个指针类型的变量myobject,该变量已经被定义过。
第二个语句是声明一个整型类型的变量x,该变量已经被定义过。


你可能感兴趣的:(编程,null,语言,编译器)