1.定义数组:
一维数组:数组名[常量表达式]
例:int a[10];
这样便定义了一个整型数组a,包含10个整型元素。
a数组中元素下标是从a[0]开始的,没有数组元素a[10]。
数组中的元素都是同一数据类型。
1)定义数组时对全部元素赋值。
int a[10]={0,1,2,3,4,5,6,7,8,9};
2)可以只对一部分元素赋初值。
int a[10]={0,1,2,3,4};(只给前面五个元素赋值,后面的元素系统自动赋值为0)
3)给全部元素赋初值为0。
int a[10]={0};或int a[10]={0,0,0,0,0,0,0,0,0,0,};
4)如果数据确定,可以不指定长度。
int a[]={0,1,2,3,4};
对数组赋值方式:
#include<stdio.h>
int main()
{
int a[10],i;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
printf("%3d",a[i]);
return 0;
}
or
#include<stdio.h>
int main()
{
int a[10],i;
for(i=0;i<10;i++)
a[i]=i;
for(i=0;i<10;i++)
printf("%3d",a[i]);
return 0;
}
。。。
二维数组:数组名[常量表达式][常量表达式]
float a[3][4],b[5][10];——正确
float a[3,4],b[5,10];——错误
二维数组的排列方式:
例a[2][3]:
a[0][0] a[0][1]
a[1][0] a[1][1]
a[2][0] a[2][1]
二维数组的初始化:
1)int a[2][3]={{1,2,3},{4,5,6}};
2)int a[2][3]={1,2,3,4,5,6,};
3)可以只对部分数组元素赋值:
int a[2][3]={{1},{2}};
1 | 0 | 0 |
2 | 0 | 0 |
int a[2][3]={{},{6}};
0 | 0 | 0 |
6 | 0 | 0 |
int a[2][3]={{1},{4,5}};
1 | 0 | 0 |
4 | 5 | 0 |
2.引用数组:
t=a[6];//这里表示引用数组中第六个元素。
1)只能引用数组元素而不能一次整体调用。
2)数组元素与一个简单变量的地位和作用相似。
例程序:将二维数组行和列元素互换,存到另一个二维数组里。
#include <stdio.h>
int main()
{
int a[2][3]={{1,2,3},{4,5,6}};
int b[3][2],i,j;
printf("array a:\n");
for(i=0;i<=1;i++) //处理a数组中的一行中各元素
{
for (j=0;j<=2;j++) //处理a数组中某一列中各元素
{
printf("%5d",a[i][j]); //输出a数组的一个元素
b[j][i]=a[i][j]; //将a数组元素的值赋给b数组相应元素
}
printf("\n");
}
printf("array b:\n"); //输出b数组各元素
for(i=0;i<=2;i++) //处理b数组中一行中各元素
{
for(j=0;j<=1;j++) //处理b数组中一列中各元素
printf("%5d",b[i][j]); //输出b数组的一个元素
printf("\n");
}
return 0;
}
字符数组:定义数组
例如char c[10];
字符型数组数据以整数形式(ASCII代码)存放,故可以int c[10];合法但浪费空间。
初始化:
char c[5]={'h','e','l','l','o'};
如果定义时初始值个数大于数组长度,那么其余的值自动赋值为\0。
字符数组也可以初始化为二维数组。
字符串:"字符常量"
用字符串存储时会自动加上一个\0作为结束符。(输出时不会输出结束符)