数组与结构体内容超详细解析!

今天我来向大家认识一下数组与结构体。首先我们要了解的是数组与结构体的区别。

数组的使用及注意事项

数组表示的是一类数据类型相同数据的集合,比如说一个数组中的数据全为整数就可以建立一个整型数组,数据全为字符,就可以建立一个字符型数组。

int arr[10]={1,2,3,4,5,6,7,8,9,0};
char ch[10]="abcdefghij";

 数组的结构我们用一张示意图来认识一下。

数组与结构体内容超详细解析!_第1张图片

有几个要点必须牢记:

1.数组的元素个数可以不填,数组的元素个数会根据后面的初始化数据内容而定。

2.数据千万不要越界,否则不仅编译器会报错还有可能对已经写好的程序造成影响。

3.数组在使用的时候采用下标表示的方法进行,数组的下标从零开始计数,一般比数组元素的个数少一。当数组使用时的下表超过或等于数组元素的个数的时候就会造成数组越界。

arr[10]={1,2,3,4,5,6,7,8,9,0};
arr[0]->1          arr[5]->6
arr[1]->2          arr[6]->7
arr[2]->3          arr[7]->8
arr[3]->4          arr[8]->9
arr[4]->5          arr[9]->0
//数组下标一旦大于等于数组元素的个数那么就会造成数组越界
arr[10]->随机数,(数组越界)

我们认识了数组之后就可以利用数组对多组相同类型的数据进行集合并操作。

数组与结构体内容超详细解析!_第2张图片

对数组进行打印。

结构体的使用及注意事项

结构体通常是多组不同类型的数据。我们可以将其理解为结构体多组数组的集合体。同样的我们来认识一下结构体的格式:

struct Stu
{
   char name[20];
   int old;
   int ID;
   int grade;
};
//引用
struct Stu s1={"大明",18,202234,100};

数组与结构体内容超详细解析!_第3张图片

 当我们要引用结构体的时候我们同样需要特定的格式来进行特定的引用操作。

#include
struct Stu
{
	char name[20];
	int old;
	int ID;
	int grade;
};
int main()
{
	struct Stu s1 = { "大明",18, 202234,100 };
	printf("%s %d %d %d", s1.name, s1.old, s1.ID, s1.grade);
	return 0;
}

数组与结构体内容超详细解析!_第4张图片

 我们在打印结构体内容的时候需要注意将结构变量名作为查找方向然后再输入结构体操作符也就是 . 就会自动弹出结构体中的成员名,接着直接引用就行了。

当然对于数组和结构体我们都可以对他们进行特定的嵌套操作以方便我们的使用。所谓的嵌套数组和嵌套结构体就是这么来的。在数组重在加入一个新的数组或者是在结构体中再加入一个新的结构体,这些方式都可以帮助我们很好的解决问题。(由于数组嵌套操作实用性价值不大,所以我们只对结构体的嵌套进行详细的讲解。)

来看一下结构体的嵌套操作:就像我们像的那样,结构体的嵌套操作就是在一个结构体之中放入一个新的结构体,使得我们的数据类型更加完善。比如我们想写一个学校的结构体,那么学校的结构体就要包括学生,老师,以及建校时间等信息。我们想进一步是信息细化,我们就又得对学生和老师进行新的描述。由于这两个数据又是复合数据类型,那么我们就可以新创建结构体,使得学校结构体中嵌套老师和学生的结构体。这就是我们所知道的结构体嵌套。接下来我们以代码的形式进行体会结构体嵌套程序的使用方法。

#include
struct Stu
{
	char name[20];
	int old;
	int ID;
};
struct Tea
{
	char name[20];
	int old;
	int ID;
};
struct School
{
	struct Stu s1;
	struct Tea t1;
	int year;
	int month;
};
int main()
{
	struct School a1 = { { "大明",18,202234 } ,{ "王老师",34,2022567 } ,1983,12 };
	printf("%s %s %d %d", a1.s1.name, a1.t1.name, a1.year, a1.month);
	return 0;
}

数组与结构体内容超详细解析!_第5张图片

 我们可以发现结构嵌套的引用当时和结构体的直接引用很类似,都需要先引用结构体变量名,在进行下一步的操作。再次特别强调一点,那就是一定要记住再使用结构体嵌套的时候要注意对应关系,完善好嵌套结构体内的内容。例如上面程序中的Stu s1的使用,再外结构体中需要重新命名,在下面主函数的引用的时候对其内容由大括号引出并进一步补充。再打印结构体嵌套的内容的时候,需要注意对应的顺序,结构体需要自外向内的引用,就像上述程序中的引用形式相同:先引用a1.指向内结构体Stu s1再进一步引出s1.指向具体的内容 "大明"。

此上我们对于数组和结构体的认识也就进本完善了,在后面的博客之中我会再次带着大家通过刷题的方式来进一步认识数组和结构体。感谢大家的观看,祝大家天天开心。

你可能感兴趣的:(从0开始C语言学习,c语言)