------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
1.一维数组的定义与引用
数组是是一组具有相同数据类型的数据的有序集合。
类型说明符 数组名[常量表达式];
int a【10】;它表示定义了一个整形数组,数组名为a,此数组有10个元素。在定义数组时,需要指定数组中元素的个数,
方括弧中的常量表达式用来表示元素的个数,即数组长度。常量表达式中可以包括常量和符号常量,但不能包含变量。
也就是说,C语言不允许对数组的大小作动态定义,即数组的大小不依赖于程序运行过程中变量的值。
#include <stdio.h>
void main()
{
int i,a[10];
for (i=0; i<=9;i++)
a[i]=i;
for(i=9;i>=0; i--)
printf("%d ″,a[i]);
printf("\n″);
}
程序输出
9 8 7 6 5 4 3 2 1 0
数组的初始化可以在定义时赋值,可以赋值一部分,但是不可以对数组整体赋值。全体赋值时由于个数确定,可以省略数组长度。
使用冒泡排序法给数组中的值排序:
#include <stdio.h>
void main()
{
int a[10];
int i,j,t;
printf(″input 10 numbers :\n″);
for (i=0;i<10;i++)
scanf("%d",&a[i]);
printf("\n");
for(j=0;j<9;j++){
for(i=0;i<9-j;i++)
if (a[i]>a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
}
for(i=0;i<10;i++)
printf(″%d ″,a[i]);
}2.二维数组的定义与引用
我们可以把二维数组看作是一种特殊的一维数组,它的元素又是一个一维数组。
二维数组的初始化:可以分行赋值,可以将所有数据写在一个花括弧内,按数组排列的顺序对各元素赋初值。可以对部分元素赋初值。
如果对全部元素都赋初值,则定义数组时对第一维的长度可以不指定,但第二维的长度不能省。
3.字符数组
用来存放字符数据的数组是字符数组。字符数组中的一个元素存放一个字符。
对字符数组初始化,最容易的方式是逐个字符赋给数组中各元素。
如果在定义字符数组时不进行初始化,则数组中各元 素的值是不可预料的。
如果初值个数小于数组长度,则只将这些字符赋给数组中前面那些元素,其余的元素自动定为空字符(即′\0′)。
为了测定字符串的实际长度,C语言规定了一个“字符串结束标志”,以字符′\0′作为标志。如果有一个字符串,前面9个字符都不是空字符(即′\0′) ,而第10个字符是′\0′,
则此字符串的有效字符为9个。系统对字符串常量也自动加一个′\0′作为结束符。但是字符数组不要求,如果不加‘\0’也是合法的。
Strcat的作用是连接两个字符数组中的字符串,把字符串2接到字符串1的后面,结果放在字符数组1中,函数调用后得到一个函数值——字符数组1的地址。
strcpy函数
其一般形式为:strcpy(字符数组1,字符串2)strcpy是“字符串复制函数”。作用是将字符串2复制到字符数组1中去。
只能用strcpy函数将一个字符串复制到另一个字符数组中去。
strcmp函数
其一般形式为:strcmp(字符串1,字符串2)
strcmp的作用是比较字符串1和字符串2。对两个字符串自左至右逐个字符相比(按ASCII码值大小比较),直到出现不同的字符或遇到′\0′为止。
strlen函数
其一般形式为:strlen (字符数组)
strlen是测试字符串长度的函数。函数的值为字符串中的实际长度(不包括′\0′在内)。