数组就是一堆相同类型数据的集合
数组类型 数组名 数组长度
uchar a [3];
注意:数组定义时必须规定数组的长度。
1)数组变量名的命名规则符合标识符命名规则;
2)数组长度在定义时必须固定,并且是常量或常量表达式
不允许是变量。
3)数组元素的下标从0开始,长度是10,0—9
4)数组长度只能是固定的,不允许随机的改变。
uchar T=3;(全局变量)
uchar niu[T]; 错误的
uchar a,b,c,d,e,f;
uchar niu[4]={3,6,21};
a=niu[0]; //3 数组元素下标从0开始
b=niu[1]; // 6
c=niu[2]; //21
d=niu[3]; //0 如果数组元素没有赋值默认为0
e=niu[4]; // 随机值
uchar a,b,c,d,e,f;
uchar niu[4]={3,6,21};
uchar chen[]={3,9,100,200,210,221};
//在定义时同时给元素赋值那么可以不用定义长度
uchar nsd[]="edu118";
//组在定义时同时给元素赋值但是字符串赋值
//那么长度多了结束符/0**
uchar nnn[6]=“edu118”;
a=sizeof(niu); 4//注意数组名是求数组总长度而不是数组首元素长度
b=sizeof(chen); 6
c=sizeof(nsd); 7
d=nsd[5]; //‘8’是字符8可不是数字8
e=niu[6]; // /0 结束符
f=sizeof(nnn); //6//当规定长度的字符数组是,长度就是字符数组长度,可以没有\0结尾
4.1 在定义时同时给元素赋值那么可以不用定义长度
4.2 组在定义时同时给元素赋值但是字符串赋值那么长度多了结束符/0
4.3 =sizeof(niu); 4//注意数组名是求数组总长度而不是数组首元素长度
4.4当规定长度的字符数组是,长度就是字符数组长度,可以没有\0结尾**
uchar niu[3]={3,9,40};//定义时可以同时初始化
uchar nsd[3];
nsd[3]={1,7,3}; 错误的
定位完成,对该数组里面的元素逐一赋值。
nsd[0]=1;
nsd[1]=nsd[2];
数组的初始化有三种情况
1.数组在定义时可以给全部元素或部分元素初始化;
2.数组定义好以后,只能对数组里面的元素逐个赋值
不能整体赋值;
3.数组在定义时可以通过字符串进行初始化
uchar niu[6]="edu118"; sizeof(niu)=6
uchar nsd[]="edu118"; sizeof(nsd)=7.
二维数组定义的一般形式为
类型说明符 数组名[常量表达式][常量表达式]
例如:float a[3][4],b[5][10];
不能写成:float a[3,4],b[5,10];
屁股——腚 乌龟的屁股——龟腚,规定。
二维数组定义:
数组类型 数组名[行下标表达式][列下标表达式];
uchar niu[3][6];
该数组为二维数组,为3行6列。
1.按行赋初值:
数据类型 数组名[行常量表达式][列常量表达式]=
{{第 0 行初值表},{第 1 行初值 表},……,{最后 1 行初值表}};
赋值规则:将”第 0 行初值表”中的数据,依次赋给第 0 行中各元素;
将“第 1 行初值表”中的数据,依次 赋给第 1 行各元素;以此类推。
2.按二维数组在内存中的排列顺序给各元素赋初值 数据类型
数组名[行常量表达式][列常量表达式]={初值表};
赋值规则:按二维数组在内存中的排列顺序,将初值表中的数据,
依次赋给各元素。 如果对全部元素都赋初值,则“行数”可以省略。
注意:只能省略“行数”。
uchar niu[3][5]={{1,2,3,4,5},{6,7,8,9,10},{11,21,31,41,51}};
uchar ncc[3][5]={1,2,3,4,5,6,7,8,9,11,12,99,88,44};
uchar nzz[][5]={{1,2,3,4,5},{6,7,8,9,11},{12}};
uchar a,b,c,d,e,f;
a=ncc[3][5];
b=ncc[0][3];
c=ncc[2][1];
d=ncc[2][4];
二维数组的总结:
1.二维数组在定义时可以赋值;
2.二维数组的行和列必须是常量或常量表达式,必须是固定的,不能修改;
3.二维数组在定义时如果赋值了,可以不要行。
4.二维数组定义时赋值有两种方式:第一种标准格式,第二种和一维数组赋值
类似,但是第0行的所有列赋完值,再第1行-----。
:和二维完全相同,X,Y,Z.___尽量不用,因为不影响赚钱。
:用来存放字符的数组就是字符数组。
唯一不同,如果定义时字符串赋值,多了一个\0