常量与变量
大一整学年都在跟c语言打交道,通过一年的学习,从零基础学起,到现在已经掌握了c语言的大部分语法。于是,我就利用空余时间整理c语言的知识。
1、常量:在程序运行期间,固定发生不变的值;
常量通常分为直接常量和符号常量;
(1) 直接常量根据数据类型的不同,可以分为以下不同种的常量。 整形常量——7; 小数(浮点数)常量——7.0 字符常量——a(用单引号标识); 字符串常量——abc; 进制常量——ox32; (2)符号常量 符号常量有两种常用的书写方式: 一是宏定义里的:#define AMOUNT 7;#define AMOUNT 7 一 种是加入const限制符,如const int N 7。const int N 7; 这两种方法表面上是进行了符号常量化,不过还是有本质区别的:define是编译的预处理阶段起作用,而且define只是简单的替换作用,无类型检查,且define定义的宏常量在内存有若干个备份,define定义的常量不能调试;const是在编译,运行时起作用,const有相应的数据类型,但const定义只有一个备份,const定义可以调试。所以相比而言,const定义的符号常量更安全,因为const会进行类型检查,const会分配空间,同时减少空间,提高效率。 (3)特点:常量的值在运行期间不会发生改变,也不能再被赋值。相当于只能读,不能写。 2,变量:其值在运行期间可以发生改变的量。一个变量需要一个类型,一个储存空间,一个名字。 一个变量的实施有如下部分组成: (1)类型:整数,浮点数,字符,指针等。 (2)声明:在使用变量之前,必须对变量进行声明(为编译器所做的描述)。声明变量需要对其指定一个类型和名字。 int height; (3)赋值:变量可以通过赋值来得到值; int a; a=1; (4)特点:变量其值可以改变,意味着它可以被覆盖,写入,赋值。但每一个变量需要有名字和相应的内存地址。
以例3的代码为例,代码中已经声明一个整形变量a,,即a的类型已经确定,是一个整形,在32位机和64位机上int类型占据4个字节。其中a就代表这int类型的这4个字节的空间,a的地址就是连续4个字节的开始的地址0x000。因此,我们知道a变量就代表这四个连续的字节的空间,a变量地址就是这连续四个字节的开始地址0x000. 变量的值和名称:变量名在声明的时候就与内存某一地址绑定在一起了,可以通过变量名或者地址来找到内存区域。; 变量值时变量所对应的内存区域内存放的二进制。变量的值不会因为变量的类型发生改变而改变,当变量类型被转换为对应类型时,内存区域的二进制序列以该类型的形式翻译出来,这也是强制转换的原因。
|