疯车

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

在上一节里,提到我们将会进行数据类型的学习,不过在此之前,我们首先来了解一下常量和变量。

Constant:n. [数] 常数;恒量

常量是在程序运行过程中,数值不会改变的量。常量区分为不同的类型,比如整型常量-4,0,5,实型常量1.2,-1.256,字符型常量'a','b'.

在程序中,有那些形式表示常量呢?

1.字面常量或直接常量

是从字面形式上即可判断。

2.用标识符代表一个常量

用一个标识符代表一个常量的符号,比如下面的value1,被称为符号常量。

符号常量的与变量的区别:

相同点:两者都用标识符表示,遵守标识符的命名规则。

异同点:1.符号常量在进行命名时,通常是用大写字母进行命名。比如:#define PRICE 40;

    2.符号常量在程序运行过程中,其值在作用域是不能被改变的,和不能再被赋与其他值的。比如:定义一个#define PRICE 40;  void main() {....PRICE=20//这是错误的..}

下面定义了两个符号常量:

#define value1 97

#define value2 'a'>'b'?1:0

第一个:定义了符号常量value1,在程序运行过程中,会将所有用value1的地方原样替换成97,这就实现了用一个标识符来代表一个常量。

第二个:第一个符号常量value2,在程序运行过程中,会将所有用value1的地方原样替换成'a'>'b'?1:0,然后进行表达式的计算。

总结:用#define来定义符号常量只是#define的一个用法,当然,宏定义的功能不限于此。后面,会对宏定义进行详细的学习。

 

Variable:n. [数] 变量;可变物,可变因素

变量就是在程序运行过程中,其值是可以改变的量。

下面,同过一个例子来说明变量在内存中的分配与使用。

...

int k;

k=5;

执行int k;编译器在内存中开辟一个大小为sizeof(int)的内存空间,当然这个空间会对应一个内存地址(首地址)比如上图中的1000,然后存储单元中的值,被赋予任意值(不同的编译器会赋予不同的值)。

在编译时,会将变量名k与地址1000形成一种对应关系(当然这种关系是隐藏的),当之后程序调用k时,其实是找到k对应地址的内存单元,然后访问内存单元中的值。

执行k=5;编译器会通过k找到所对应的内存地址,然后将5写入相应的内存单元中。


---加油!一定会成功!

 

 

posted on 2011-12-23 14:22  疯车  阅读(185)  评论(0)    收藏  举报