新手必看 什么是c语言程序设计( 四 )


② 绝对地址变量只能够是全局变量,不能在函数中对变量绝对定位;
③ 绝对地址变量多用于I/O端口,一般情况下不对变量作绝对定位;
④ 位变量不能使用_at_绝对定位 。
2. 变量的初始化和赋值
(1)变量的初始化
变量的初始化是指变量在被说明的同时赋给一个初值 。外部变量和静态全程变量在程序开始处被初始化,局部变量包括静态局部变量是在进入定义它们的函数或复合语句时才作初始化 。所有全程变量在没有明确的初始化时将被自动清零,而局部变量和寄存器变量在未赋值前其值是不确定的 。
对于外部变量和静态变量,初值必须是常数表达式,而自动变量和寄存器变量可以是任意的表达式,这个表达式可以包括常数和前面说明过的变量和函数 。
例如:

新手必看  什么是c语言程序设计

文章插图
(2)变量的赋值
变量赋值是给已说明的变量赋给一个特定值 。
单个变量的赋值:
① 整型变量和浮点变量
赋值格式如下:
变量名=表达式;
例如:
新手必看  什么是c语言程序设计

文章插图
说明:
C语言中允许给多个变量赋同一值时可用连等的方式 。
例如:
新手必看  什么是c语言程序设计

文章插图
② 字符型变量
字符型变量可以用三种方法赋值 。
例如:
新手必看  什么是c语言程序设计

文章插图
数组与指针
(一)数组
所谓数组就是指具有相同数据类型的变量集,并具有共同的名字 。数组中的每个特定元素都使用下标来访问 。数组由一段连续的存储地址构成,最低的地址对应于第一个数组元素,最高的地址对应最后一个数组元素 。数组可以是一维的,也可以是多维的 。
1. 数组基本形式
(1)一维数组
一维数组的格式是:类型 变量名[长度];
类型是指数据类型,即每一个数组元素的数据类型,包括整数型、浮点型、字符型、指针型以及结构和联合 。
例如:
int a[10];
long a[20];
char *s[5];
char *f[];
说明:数组都是以0作为第一个元素的下标,因此,当说明一个int a[16]的整型数组时,表明该数组有16个元素,a[0]~a[15],一个元素为一个整型变量 。
大多数字符串用一维数组表示 。数组元素的多少表示字符串长度,数组名表示字符串中第一个字符的地址,例如在语句char str[8]说明的数组中存入“hello”字符串后,str表示第一个字母“h”所在的内存单元地址 。str[0]存放的是字母“h”的ASCII码值,以此类推,str[4]存入的是字母“o”的ASCII码值,str[5]则应存放字符串终止符‘’ 。
C语言的编译器大多对数组不作边界检查 。
例如用下面语句说明两个数组
char str1[5],str2[6];
当赋给str1一个字符串“”时,只有“ABCDE”被赋给,“E”将会自动的赋给str2,这点应特别注意 。
(2)多维数组
多维数组的一般格式:
类型 数组名[第n维长度][第n-1维长度]……[第1维长度];
例如:
数组m[3][2]共有3*2=6 个元素,顺序为:
m[0][0],m[0][1],m[1][0],m[1][1],m[2][0],m[2][1];
数组c[2][2][3]共有2*2*3=12个元素,顺序为:
c[0][0][0],c[0][0][1],c[0][0][2],
c[0][1][0],c[0][1][1],c[0][1][2],
c[1][0][0],c[1][0][1],c[1][0][2],
c[1][1][0],c[1][1][1],c[1][1][2];
数组占用的内存空间(即字节数)的计算式为:
字节数=第1维长度*第2维长度*...*第n维长度*该数组数据类型占用的字节数 。