变量:指程序在运行时其值可以改变的量。
变量要有变量名、变量的数据类型(int、float、char等)和变量的值。
int a = 10; int b; //a和b都是变量,只不过a在定义时被初始化,b没有
C语言中定义变量实际是为变量分配内存,变量名是分配到的内存的别称,变量的值是内存中存放数据的值。
如上例所示,程序在编译时为变量a分配地址,并重新赋值为10,变量b则是仅分配地址,并没有重新赋值。所以a的值为初始化的值10,b的值为此地址之前的值(可能为任意值)。
变量b只定义了,但是没有初始化。对于未初始化的变量,有的编译器不能使用,有的编译器会自动赋值为0。
直接量:常数是固定不变的数,直接写在程序里称作直接量。
int price = 0; int change = 0; printf("请输入价格:"); scanf_s("%d", &price); change = 100 - price; //100是付钱数,这里的100便可称作直接量 printf("应该找%d元", change);
有时候一个程序中会多次用到一个直接量,为了方便修改和提高程序可读性,赋予直接量字面含义,将直接量定义为一个常量。
常量在程序执行的过程中不会发生变化,不可以被修改。任何试图改变常量的值都会引发错误。
C语言中有两种简单的定义常量的方式:使用define预处理器和使用const关键字。这里先介绍简单的const用法,待学完再更。
const 定义的是常变量,这个变量的值允许修改,带有类型。编译运行的时候起作用存在类型检查。
常见定义方式如下:
const type NAME = value; //NAME通常用大写字母表示
上述程序可更改如下:
int price = 0; int change = 0; const int AMOUNT = 100; printf("请输入价格:"); scanf_s("%d", &price); change = AMOUNT - price; printf("应该找%d元", change);
const是一个修饰符,加在type前(此例为int),用来给这个变量加上一个不变(只读)的属性,这个变量一旦被初始化便不能再修改。
const还有另一种修饰方式,通常不被使用:
type const NAME = value;