类型说明符 数组名[常量表达式];// int a[10];
注:常量表达式中可以包括常量和符号常量,也就是说,C语言不允许对数组的大小做动态的定义,即数组的大小不依赖于程序运行过程中变量的值;
如下是不允许的:
int n; scanf("%d",&n); int a[n];/* 在程序中临时输入数组的大小 */数组必须先定义,再使用。
表现形式为:数组名[小标]
对数组的元素的初始化可以用一下方法实现:
a.在定义数组时对数组元素赋予初值,列如:
int a[5] = {0,1,2,3,4};b.可以只给一部分元素赋值,其余元素值为0;
c.如果想使一个数组中元素值为0,可以写成:
int a[5] = {0,0,0,0,0}; or int a[10] = {0};二维数组定义的一般形式为:
类型说明符 数组名[常量表达式][常量表达式];
C语言中,二维数组中元素排列的顺序是按行存放的,即在内存中先顺序存放第一行的元素,再存放第二行的元素。
例如:
a[0][0] -> a[0][1] ->a[0][2] -> a[1][0] -> a[1][1] ->a[1][2].......
可以用以下的方法对二维数组初始化:
a.分行给二维数组赋初值:
int a[3][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}};
b.可以将所有的数据写在一个花括号内:
int a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12};
c.可以对部分元素赋初值:
int a[3][4] = {{1},{5}};//其余为0
用来存放字符数据的数组是字符数组。字符数组中的一个元素存放一个字符。
由于字符型与整型是互通的。
对字符数组初始化,最容易理解的方式是逐个字符赋给数组中各元素。
char c[10] = {'I',' ','a','m','h','a','p','p','y'};
如果在定义字符数组时不进行初始化,则数组中各元素的值是不可预料的。
其一般形式:puts(字符数组)
其作用是将一个字符串(以'\0'结束的字符序列)输出到终端。相当于printf。
其一般形式:gets(字符数组);
其作用是从终端输入一个字符串到字符数组,并且得到一个函数值。该函数值是字符数组的起始地址。
注意:用puts和gets只能输出或输入一个字符串。
其一般形式:strcat(src,dst);
其作用是连接2个字符数组中的字符串,把dst接到src的后面,结果放在src中。
说明:
a.字符数组src必须足够大,以便容纳连接后的新字符串。
b.连接前两个字符串的后面都有'\0',连接时将字符串src后面的'\0'取消,只在新串最后保留'\0'。
其一般形式:strcpy(dst,src);//strncpy(dst,src,len);
其作用是将字符串src复制到dst中。
其一般形式:strcmp(src1,src2);
其作用是比较字符串src1和字符串src2。
字符串比较规则:对两个字符串自左向右逐个字符相比(按ASCII码值大小比较),直到出现不同的字符或遇到'\0'为止。如全部字符相同,则认为相等;若出现不同,则以第一个不相同的字符的比较结果为准。
其一般形式:strlen(str);
其作用是字符串长度的函数。函数的值为字符串中的实际长度(不包括'\0');
其一般形式:strlwr(str);
函数的作用是将字符串中大写字母换成小写字母。
其一般形式:strupr(str);
函数的作用是将字符串中小写字母换成大写字母。