数组
定义:数组具有相同类型的数据的集合。
一维数组
1.一般形式:类型 数组名[常量表达式];例如:int arr[10]
2.常量表达式不允许为变量;
3.数组元素下标可以是任何整形常量、整形变量、整形表达式;
4.使用数值型数组时,不可以一次引用整个数组,只能逐个引用元素;
5.可以只给一部分元素赋值,其他元素默认为0;
6.需要整体赋值时只可以在定义的同时整体赋值;
例如:int arr[5]={1,2,3,4,5};正确
int arr[5]; arr[5]={1,2,3,4,5};错误
7.对全部数组元素赋值时,可以不指定数组长度;
例如:int arr[5]={1,2,3,4,5};或者
int arr[]={1,2,3,4,5};
但是,既不赋初值也不指定长度时错的;
例如:int arr[];错误
二维数组
1.一般形式:类型 数组名[表达式1][表达式2];
例如:int arr[3][4];//表示这是一个三行四列的二维数组
可以这样想,把它看成是3个一维数组,每个一维数组有四个元素;
2.与 一维数组一样数组元素下标可以是任何整形常量、整形变量、整形表达式;
3..需要整体赋值时只可以在定义的同时整体赋值;
例如:int arr[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
4.可以把所有数值写在一个花括号里;
例如:int arr[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
5.可以只给一部分元素赋值,其他元素默认为0;
例如:int arr[3][4]={{3},{4],{5}};
6.对全部元素赋值时,可以省略第一维长度,第二维不可以省略;
例如:int arr[3][4]={1,2,3,4,5,6,7,8,9};
可以写成 int arr[][4]={1,2,3,4,5,6,7,8,9};
字符数组
1.定义:char arr[10];
2.初始化:
char arr[]={'a','b','c','d'};
char arr[]={"abcd"};
char arr[]="abcd";
注:因为字符串结尾自动加'\0',所以int arr[]="abcd"的长度为5,而不是4.
3.字符串输入
scanf();用%c逐个字符输入
可以用%s以字符串的形式输入,比如: char a[6]; scanf("%s",a);注意,a前不用加&,因为a是数组名,就代表了数组a的首地址
以%s输入时,从第一个不是空字符开始,终止于第一个空字符处;比如:输入How are you时,只输出How
gets();也可以获得一个字符串,与scanf()不同的是空格和回车都存放在数组中,最后自动加入'\0',不会出现输出不全的情况
4.字符串的输出
printf();用%c逐个字符输入,可以用%s以字符串的形式输入
puts();输出一个字符串,结尾自动换行。