一维数组的定义
类型说明符 数组名 [常量表达式];
在此说明:常量表达式必须是常量和常量符号。常量表达式定义了数组的长度。在宏定义中#define定义一个符号常量,则这个符号常量可以用来声明数组的个数
#define
n
=9
.....
int
arr[
n
];
一维数组的引用
数组必须先定义在使用,可以通过引用数组元素方式使用该数组中的元素,如arr[0]就是访问的数组的第一个元素。
一维数组初始化的方式有三种
1.完全初始化
int
a[5] = { 1, 2, 3, 4, 5 };
2.部分初始化,没有赋值的元素默认值为0
int
a[6] = { 1, 2, 3 };
因为这个数组有留个元素,前三个分别赋值为1,2,3,后边没赋值他们就为0。
3.不指定数组长度,系统会根据元素个数定义数组的长度。
int
a[] = { 1, 2, 3, 4, 5 };
注意事项:
1.数组名不能和其他变量名相同如下:
int a;
int a[];
2.[]里面一定为常量表达式,常量表达式可以是整型常量,整形符号常量和整形常量表达式
3.避免数组越界。数组元素个数不能超过给定的值。
4.给数组赋值只能逐个赋值,不能整体赋值。
二维数组的定义
类型说明符 数组名 [常量表达式1] [常量表达式2];
int arr[n][m];
//定义了一个n行m列的数组
二维数组的引用
与一维数组引用的方式一样都是通过引用数组下标的方式引用的。如arr[0][0],arr[0][1]
二维数组初始化方法
1.安行连续赋值,即将所有的数据写在一个大括号内,按照元素排列顺序对元素赋值。
int
a[2][2]= { 1, 2, 3, 4 };
2.给所有元素赋初值时,可以省略行标,但列标一定不能省略。
int
a[][2]= { 1, 2, 3, 4 };
3.按行分段赋值,可以分行给数组元素赋值
int
a[][2] = { { 1, 2 }, { 3, 4 } };
4.也可以直接对元素赋值
int a[2][2]
a[0][0] = 1;
a[0][1] = 2;
字符数组的定义
char 数组名 [常量表达式];
char
arr[5];
字符数组的引用
与其他数组引用方式相同,也是通过下标访问的。如arr[0]='a';\
字符数组的初始化:
1.逐个把字符赋给字符数组
char
arr[5] = {
'a'
,
'b'
,
'c'
,
'd'
,
'e'
};
2.如果在定义字符数组长度时进行初始化,可以省略数组长度
char
arr[] = {
'a'
,
'b'
,
'c'
,
'd'
,
'e'
};
3.利用字符串给字符数组赋值。
char
arr[] = {
"hello"
};
或者将{}去掉
char
arr[5] =
"hello"
;
注意字符数组的结束标志为
'\0'。
字符数组的输入输出方式
1."%c",实现的是单个字符的输入和输出
int
main(
void
)
{
char
arr[] = {
'a'
,
'b'
,
'c'
,
'd'
,
'e'
};
int
i = 0;
int
sz =
sizeof
(arr) /
sizeof
(arr[0]);
for
(i = 0; i < sz; i++)
{
printf(
"%c "
, arr[i]);
}
system(
"pause"
);
return
0;
}
2."%s",实现的是字符串的输入和输出。
int
main(
void
)
{
char
arr[] =
"hello"
;
int
i = 0;
printf(
"%s "
, arr);
system(
"pause"
);
return
0;
}