C语言 数组
#include <stdio.h>
int main(int argc,constchar * argv[]) {
/*
数组的介绍:数组是一个有序排列的容器
下标:元素的序号(位置)序号是从0开始的
一维数组的公式:数组的数据类型名字[有多少元素]={元素,元素····};
超出数组元素个数存取值叫做数组越界
数组元素不够的时候系统会自动使用0补全只能少存不能多存(不能超过数组元素个数)
元素的数据类型必须和数组的数据类型相同
数组取值:类型变量名 = 数组名[下标];
取出来的元素赋值给另一个变量变量类型要与数组元素类型相同
如果元素个数不够用0补全
数组遍历:一个个把数组里的值取出来 一般使用循环去遍历
字符数组:char类型的数组与数字数组相同
char 数组名[元素个数]={'元素','元素'····}
*/
#pragma mark ------1------
// int list[5]={33,22};
// 注意:不要数组越界
// int num=list[2];
// printf("第三个元素:%d\n",num);
// 给数组某一个下标对应的元素赋值
// list[3]=99;
// printf("第四个元素:%d\n",list[3]);
#pragma mark ------2------
//数组遍历
//i是当做下标来用的
/*int score[4]={98,99,100,97};
for (int i=0; i<4; i++) {
printf("第%d位同学的成绩是:%d\n",i,score[i]);
}
printf("%lu\n",sizeof(score));
printf("%lu\n",sizeof(int));
printf("%lu\n",sizeof(score)/sizeof(int));*/
//计算数组的元素个数:数组元素个数 =数组所占大小/元素所占大小;
/*int list[10]={66,77,88,99};
int count=sizeof(list)/sizeof(int);
for (int i=0; i<count; i++) {
printf("%d\n",list[i]);
}*/
#pragma mark ------3------
//往数组里面输入数据
//初始化数组
/* int list[10]={};
int num;
//输入元素到数组的第一个位置
printf("输入元素到数组的第一个位置:\n");
scanf("%d",&num);
//把输入的数字赋值给数组的第一个位置
list[0]=num;
//遍历一下数组
int count=sizeof(list)/sizeof(int);
for (int i=0; i<count; i++) {
printf("现在数组里的下标:%d元素为:%d\n",i,list[i]);
}*/
#pragma mark ------4------
/*
字符数组:char类型的数组与数字数组相同
char 数组名[元素个数]={'元素','元素'····}
*/
/*char name[5]={'B','r','u','c','e'};
int count=sizeof(name)/sizeof(char);
for (int i=0; i<count; i++) {
printf("%c",name[i]);
}
printf("\n");*/
//字符数组就相当于一个字符串
//字符串以/0结束的都是字符串 双引号""来写的都是字符串
//单引号''引起来的是字符
/*char name2[5]="Bruce";
int count=sizeof(name2)/sizeof(char);
for (int i=0; i<count; i++) {
printf("%c",name2[i]);
}
printf("\n");*/
#pragma mark-------5、二维数组-------
/*
二维数组:大数组里面包含多个小数组(一维数组的嵌套)
二维数组的公式:
数据类型数组名[大数组里面小数组的个数(行)][小数组里面的元素个数(列)]={
{小数组里面的元素},
{小数组里面的元素},
{小数组里面的元素}
····};
举例:
语文成绩:15,45,0
数学成绩:99,68,5
int scores[2][3]={
{15,45,0},
{99,68,5}};
*/
/*int scores[2][3]={
{15,45,0},
{99,68,5}};
int a= scores[0][1];
int b= scores[1][1];
printf("第一学期:语文成绩%d,数学成绩%d\n",scores[0][0],scores[1][0]);
printf("第二学期:语文成绩%d,数学成绩%d\n",a,b);
printf("第三学期:语文成绩%d,数学成绩%d\n",scores[0][2],scores[1][2]);*/
/*int scores[2][3]={
{15,45,0},
{99,68,5}};
//遍历:i行最外层学科
// j 列 最里层学期
遍历多维数组
for循环的层数是按照表示数组范围的顺序去写for循环的层数
循环次数是每一层的元素个数决定的
for (int i=0; i<2; i++) {
printf("第%d门\n",i+1);
for (int j=0; j<3; j++) {
printf("第%d学期成绩为:%d\n",j+1,scores[i][j]);
}
}*/
// int list[3][2]={{44,33},{55,66},{88,99}};
// for (int i=0; i<3; i++) {
// for (int j=0; j<2; j++) {
// printf("%d\n",list[i][j]);
// }
// }
/* int list[2][3][4]={
{{1,2,3,4},{5,6,7,8},{0,9,6,8}},
{{2,2,3,4},{3,2,3,4},{4,2,3,4}}};
for (int i=0; i<2; i++) {
for (int j=0; j<3; j++) {
printf("\n");
for (int k=0; k<4; k++) {
printf("%d ",list[i][j][k]);
}
}printf("\n\n");
}*/
#pragma mark-------6、结构体-------
/*
结构体:struct
模型空壳子
当想让结构体成为一个具体的东西时,只需给他赋值(给模具灌料)
模型空壳子
当想让结构体成为一个具体的东西时,只需给他赋值(给模具灌料)
结构:由不同数据类型的元素(不同的原材料组成的)
体:表示可以组成一个整体
结构体的公式:
struct 名字{部件;部件;部件;····};每一个部件用分号隔开
结构体变量名.部件=值;
结构体变量名.部件2=值;
*/
/* struct House{
char *window;
int door;};
struct House dogOfHouse;
dogOfHouse.window="落地小飘窗";
dogOfHouse.door=1;
printf("狗房子有一个%s的窗,有%d个门\n",dogOfHouse.window,dogOfHouse.door);*/
typedef struct Weapon{
char *name;
int power;
}Weapon;}
return 0;
}