1、定义
如: int a[5]
2、赋值
如:a[i] = 123 。
注意:这里是给数组中的某一个元素赋值。
3、初始化
int a[3] = {1,2,3};
元素个数只能少,不能多。少了默认用0(int),或空字符(char)来填充。多了则会报错
4、4个重要公式
&a[i] == a + i ;
a[i] == *(a + i) ;
a[i] = i[a];
*(a + i ) = *(i + a)
注意:最后两个公式仅供娱乐。。。。。。
5、数组地址越界问题
轻则破坏变量的值,重则导致程序崩溃。
如图所示:
6、常用知识点:
1)如a[i]。
a :数组名、首地址
i :下标、偏移量
a[i] :数组中的每一个元素都是一个变量
数组,是一个集合(这与java中所指的集合不是一个东西),可以用来管理一组数据
2) *a += 100
解释:给数组a的第一个元素的值加上100
3) int a[5] = {1,2 ,3,4,6};
解释:这时候的 5可以不写,但建议写上
4)printf("%p",&a[i])。
解释:这一句的意思是,打印数组a中第i+1个元素的地址
5)数组可以初始化,但是不能整体赋值。
如: a = 123(错,类型不兼容。左边是一个数组,右边是一个数)
a = {1,2,3}(错,此时等号的右边不能出现大括号)
6)在c中,字符数组还可以用来存储一个字符串。
解释:字符串,以\0结束的一串字符。
二、例程分析
1、
#include <stdio.h>
int main(){
int a[5];
int i;
for(i = 0 ; i < 5 ;++i){
printf("%d ",a[i]);
}
printf("\n");
int b[5]={123,321,738,850,395};
for(i = 0 ; i < 5 ; ++i){
printf("%d ",b[i]);
}
printf("\n");
int c[5] ={520};
for(i = 0 ; i <5 ; ++i){
printf("%d ",c[i]);
}
printf("\n");
char d[15]={'z','h','a','n','g','z','e','t','i','a','n'};
for( i = 0 ; i < 15 ; ++i){
printf(" %c",d[i]);
}
printf("\n");
return 0;
}
2、以下演示不初始化,而是单独给每一个元素赋值
#include <stdio.h>
int main(){
int b[5] ={2};
int i;
for(i = 0 ; i < 5 ; ++i){
printf("%d ",b[i]);
}
b[2]=3,b[3]=4,b[4]=5,b[1]=6;
for(i = 0 ; i < 5 ; ++i){
printf("%d ",b[i]);
}
printf("\n");
}