- 变量与常量
- 变量的定义
C语言中使用变量采用先定义、后使用的规则,任何变量在使用前必须先进行定义。
定义基本形式如下:
说明符(一个或多个)变量或表达式列表
这里的说明符就是包含一些用于表明变量基本类型的关键字、存储类型和作用域。
C语言的变量在程序中用变量名表示。变量名由用户根据其用途任意命名,变量名命名遵从标识符的起名规则(只能由字母\数字\下划线组成且头一个字母只能是字母或下划线. 变量不能是C的特殊字符)。
变量在程序中使用时,必须预先说明它们的存储类型和数据类型。
变量说明的一般形式是:
<存储类型> <数据类型 > <变量名> ;
<存储类型>可以是关键词auto、register、static和extern之一;
<数据类型>可以是前面讲的基本数据类型,也可以是后面要讲解的自定义的数据类型.
<变量名>是一个合法的标识符,其前面的32字符有效。
注意:在上面变量说明的式子里,<变量名>之后有一个分号“;”意味着它是一个语句,该语句我们通常称为变量的说明语句.
自定义数据类型--typedef:
typedef 是C语言的关键字,其作用是为一种数据类型定义新名字。这里的数据类型包括内部数据类型(如int、char等)和自定义的数据类型(如struct等)。
基本用法如下:
typedef 数据类型 自定义数据类型
例如,用户可以用一下语句:
Typedef unsigned int u8;
这样,就把标识符u8声明为无符号整型的类型了,之后用户便可以用它来定义变量:
u8 a;
此句等价于:
unsigned int a;
C语言支持四种存储类型:auto, register, static和extern。
用auto存储类型说明的变量都是局部于某个程序范围内的,只能在某个程序范围内使用,通常在函数体内或函数中的复合语句里。
C语言中,在函数体的某程序段内说明auto存储类型的变量时可以省略关键字auto。
例如,在函数体中,下列三条语句说明了三个auto存储类型的变量:
auto int k ; //说明一个auto整型的k变量
int j ; //省略了auto,说明一个auto整型的j变量
double x; //省略了auto,说明一个auto双精度型的变量
register称为寄存器型,使用register关键词说明的变量主要目的是想将所说明的变量放入CPU的寄存器存储空间中,这样可以加快程序的运行速度。
当变量在一个文件中的函数体外说明,所有其他文件中的函数或程序段都可引用这个变量。
一般用于在函数之间传递数据。
在函数体内说明的static 存储类型的变量也是一种局部变量,与auto最大不同点是:static存储类型的变量在内存中是以固定地址存放的,而不是以堆栈方式存放的;只要整个程序还在继续运行静态变量就不会随着说明它的程序段的结束而消失,它下次再调用该函数,该存储类型的变量不再重新说明,而且还保留上次调用存入的数值。
<存储类型> <数据类型> <变量> = <表达式> ;
变量的初始化是指变量在被说明的同时赋给一个初值。
例如,
int i=0;
static double w=100.56,
double result = 1;
double x = 5, y = x*2 ;
register int count = 0 ;
auto double s = 0 ;
2.常量
常量是指在程序运行期间其数值不会发生改变的数据。
2.1 整型常量
整型常量通常简称为整数。C语言的整数可以是十进制数、八进制数和十六进制数。例如:十进制的值3356可以有下列三种不同的表示形式:
十进制:3356
八进制:06434
十六进制:0xdlc
2.2 浮点常量
浮点常量又称为实数,一般含有小数部分。
在C语言中,实数只有十进制的实数,它又分为单精度实数和双精度实数,它们的表示方法基本相同。实数有两种表示方法,即一般形式和指数形式。
指数形式的实数一般是有尾数部分、字母e或E的指数部分组成。当一个实数的符号为正号时,可以省略不写,其一般的表示形式如下:
2.3 字符常量
字符常量是指一个单一字符,其表示形式是由两个单引号包括的一个字符。
例如:‘a’、‘Q’,‘9’等
在C语言中,字符常量具有数值。字符常量的值就是该字符对应的ASCII码值。
例如,char a, b, u, v ; // 说明a、b、u和v为字符变量
a = 'F' ; // 将70送给a
b = 'A'+2; // b存放的是 'C' 字符
u = ' ' + 'B'; // u存放的是 'b' 字符
v= 'b' - 32; // v存放的是 'B' 字符
a= 70;
b= 65+2;
u= 32+66 ;
v= 97-32;
2.4 标识常量
标识常量是指用标识符代替常量使用的一种常量,其名称通常是一个标识符。
标识常量也叫符号常量,为了不与一般变量名混淆,表示常量一般使用大写的英文字母标识符,在使用之前必须先预定义,其一般说明形式为:
#define <标识常量名称> <常量>
#define MAX 50
#define PI 3.1415926
#define NULL 0
#define EOF -1
#define ERROR -1