一.数组的定义
1.一维数组的定义:
#include<stdio.h>
int main(void){
int a[10];
char b[10];
for(int i=0;i<10;i++){
scanf("%d",&a[i]);
}
int a[10]={1,2,3,4,5,6,7,8,9,10};
同时如果你要知道整数型数组的大小: 可以用以下指令:
a=sizeof(a)/sizeof(a[0]);
注意: 在数组中第一个元素为: a[0]; 最后一个元素为: a[数组的大小-1];
2.二维数组的定义:
如:
int a[2][3]={1,2,3,4,5,6};
不过要注意: 如果你想要访问第二行第一个元素,代码应该是: a[1][0],而不是a[2][1]。
二.数组的注意事项:
不用指针建立动态数组(可能会在某些编译器无法实现) 如:
int n;
scanf("%d",&n);
int a[n];
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
}
printf("%d",a[1]);
不过要注意对于n的声明应该在a[n]的前面,而不能:
int a[n],n;
同时最好输入n的值在int a[n]前;
建立一个字符串型的动态数组:
#include<stdio.h>
int main(void){
int n;
scanf("%d",&n);
char a[n];
for(int i=0;i<n;i++)
{
scanf("%c",&a[i]);
}
上面的代码中如果是整数数组就没错,但是字符串就可能会出错,问题在于scanf("%d",&n),如果你输入n后按回车,然后在输入字母,你就会发现输出的会出错,这是在于回车也是字符串,它会认为你已经输入一个字符串所以你可以这样:
scanf("%d\n",&n)
动态二维数组:
#include<stdio.h>
int main(void){
int n,m;
scanf("%d%d",&n,&m);
int a[n][m];
for(int i=0;i<n;i++){
for(int o=0;o<m;o++){
scanf("%d",&a[i][o]);
}
}
可能会有错误!
|