| 
4.5  变量的初始化和赋值 
     一、变量的初始化 变量的初始化是指变量在被说明的同时赋给一个初值。Turbo C2.0中外部变量
 和静态全程变量在程序开始处被初始化, 局部变量包括静态局部变量是在进入定义
 它们的函数或复合语句时才作初始化。所有全程变量在没有明确的初始化时将被自
 动清零, 而局部变量和寄存器变量在未赋值前其值是不确定的。
 对于外部变量和静态变量, 初值必须是常数表达式, 而自动变量和寄存器变量
 可以是任意的表达式, 这个表达式可以包括常数和前面说明过的变量和函数。
 1. 单个变量的初始化
 例如:
 float f0, f1=0.2;/*定义全程变量, 在初始化时f0被清零, f1被赋0.2*/
 main()
 {
 static int i=10, j; /*定义静态局部变量, 初始化时i被赋10, j不确
 定*/
 int k=i*5;          /*定义局部变量, 初始化时k被赋10*5=50*/
 char c='y';         /*定义字符型指什变量并初始化*/
 .
 .
 .
 }
 
     2. 数组变量的初始化 例如:
 main()
 {
 int p[2][3]={{2, -9, 0}, {8, 2, -5}};  /*定义数组p并初始化/*
 int m[2][4]={{27, -5, 19, 3}, {1, 8, -14, -2}};/*定义数组m并初
 始化*/
 char *f[]={'A', 'B', 'C'};         /*定义数组f并初始化*/
 .
 .
 .
 }
 从上例可以看出: Turbo C2.0中数组进行初始化有下述规则:
 (1) 数组的每一行初始化赋值用"{}"并用","分开, 总的再加一对"{}"括起来,
 最后以";"表示结束。
 (2) 多维数组的存储是按最右维数的变量变化最快的原则。
 (3) 多维数组存储是连续的, 因此可以用一维数组初始化的办法来初始化多维
 数组。
 例如:
 int x[2][3]={1, 2, 3, 4, 5, 6};/*用一维数组来初始化二维数组*/
 (4) 对数组初始化时, 如果初值表中的数据个数比数组元素少, 则不足的数组
 元素用0来填补。
 (5) 对指针型变量数组可以不规定维数, 在初始化赋值时, 数组维数从0 开始
 被连续赋值。
 例如:
 char *f[]={'a', 'b', 'c'};
 初始化时将会给3个字符指针赋值, 即: *f[0]='a', *f[1]='b', *f[2]='c'。
 
 |