一、一维数组
1.定义格式:
类型说明符 数组名[常量表达式]; 例如: int a[10]
2.一维数组初始化
- int a[10]={0,1,2,3,4,5,6,7,8,9};
- int a[10]={0,1,2,3,4};
定义a数组有10个元素,但花括弧内只提供5个初值,这表示只给前面5个元素赋初值,后5个元素值为0。
- int a[10]={0};
- 对全部数组元素赋初值时,由于数据的个数已经确定,因此可以不指定数组长度。
例如:int a[5]={1,2,3,4,5};
也可以写成 int a[]={1,2,3,4,5};
int a[10]={1,2,3,4,5}; 只初始化前5个元素,后5个元素为0。
二、二维数组
1.定义格式:
类型说明符 数组名[常量表达式][常量表达式];
例如:float a[3][4];定义a为3×4(3行4列)的数组
2.二维数组初始化
- 分行给二维数组赋初值。
例如: int a[3][4]={{1,2,3,4},{5,6,7,8}, {9,10,11,12}};
- 将所有数据写在一个花括号内,按数组排列的顺序对各元素赋初值。
例如:int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
- 可以对部分元素赋初值。
例如: int a[3][4]={{1}, {5}, {9}};也可以对各行中的某一元素赋初值,如int a[3][4]={{1}, {0,6}, {0, 0, 0, 11}};
- 如果对全部元素都赋初值,则定义数组时对第一维的长度可以不指定,但第二维的长度不能省。
例如:int a[3][4]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};等价于:int a[ ][4]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
3.地址
int a[4][3] ;
printf( " %p\n", &a[0][0]) ; //首元素的地址,单位4字节
printf( " %p\n", a[0]) ; //首行首元素的地址,单位4字节
printf( " %p\n", &a[0]) ; //首行的地址,单位12字节
printf( " %p\n", a) ; //首行的地址,单位12字节
printf( " %p\n", &a) ; //数组的地址,单位48字节
三、字符数组
1.字符数组初始化
- char c[10] = {‘I’,‘ ’,‘a’,‘m’,‘ ’,‘h’,‘a’,‘p’, ‘p’,‘y’} ;
char c[11] = "HelloWorld";
2.输入输出方法
- 逐个字符输入输出。用格式符“%c”。
- 将整个字符串一次输入或输出。用“%s”格式符。
四、函数
1.strcat函数-----------连接
其一般形式为:strcat(字符数组1,字符数组2)
strcat的作用是把字符串2接到字符串1的后面,结果放在字符数组1中,函数调用后得到一个函数值——字符数组1的地址。
2.strcpy函数-----------复制
其一般形式为:strcpy(字符数组1,字符串2)
strcpy的作用是将字符串2复制到字符数组1中去。
(注:
“字符数组1”必须写成数组名形式(如str1),
“字符串2”可以是字符数组名,也可以是一个字符串常量。如:strcpy(str1,″China″);
复制时连同字符串后面的′\0′一起复制到字符数组1中。
)
3.strcmp函数----------比较
其一般形式为:strcmp(字符串1,字符串2)
strcmp的作用是比较字符串1和字符串2。
比较的结果由函数值带回
(1) 如果字符串1=字符串2,函数值为0。
(2) 如果字符串1>字符串2,函数值为一正整数。
(3) 如果字符串1<字符串2,函数值为一负整数。
4.strlen函数----------长度
其一般形式为: strlen (字符数组)
strlen是测试字符串长度的函数。函数的值为字符串中的实际长度(不包括′\0′在内)。
四、用数组编写的冒泡排序
#include<stdio.h>
void in(int a[], int length)
{
int i=0;
printf("Please input:");
for(i=0; i<length; i++)
{
scanf("%d",&a[i]);
}
}
void mao(int a[], int length)
{
int i,j,temp;
for(j=0; j<length-1; j++)
for(i=0; i<length-j-1; i++)
{
if(a[i+1] < a[i])
{
temp = a[i+1];
a[i+1] = a[i];
a[i] = temp;
}
}
}
void out(int a[], int length)
{
int i=0;
for(i=0; i<length; i++)
{
printf("%d ", a[i]);
}
}
int main()
{
int i, j, temp;
int a[5] = {0};
int length = sizeof(a)/sizeof(a[0]);
in(a, length);
mao(a, length);
out(a, length);
return 0;
}