C语言数据结构学习——结构体与结构体指针

大家好,我是一名在算法之路上不断前进的小小程序猿!体会算法之美,领悟算法的智慧~

希望各位博友走过路过可以给我点个免费的赞,你们的支持是我不断前进的动力!!

加油吧!未来可期!!!

结构体

        在我的理解看来,定义一个结构体就是自定义一个“数据类型”。我们可以利用结构体去自定义我们需要的数据类型。下面以自定义一个学生类型为例,学生的类型包括学号,姓名,性别,年龄,分数,地址。

#include <stdio.h>

struct  student
{
	int num;
	char name[20];
	char sex;
	int age;
	float score;
	char arr[30];
};
int main() {

	struct student s1 = 
	{
		1001, "juju", 'm', 19, 87.21, "shantou"
	};
	printf("%d %s %c %d %.2f %s\n", s1.num, s1.name, s1.sex, s1.age,s1.score, s1.arr);
	return 0;
}

 循环遍历结构体

#include <stdio.h>

struct  student
{
	int num;
	char name[20];
	char sex;
	int age;
	float score;
	char arr[30];
};
int main() {

	struct student s1 =
	{
		1001, "juju", 'm', 19, 87.21, "shantou"
		
	};
	struct student surr[3];

	printf("%d %s %c %d %.2f %s\n", s1.num, s1.name, s1.sex, s1.age,s1.score, s1.arr);
	
	for (int i = 0; i < 3; i++)
	{
		scanf("%d %s %c %d %.2f %s\n", &surr[i].num, surr[i].name,
			&surr[i].sex, &surr[i].age, &surr[i].score, surr[i].arr);
	}
	
	for (int j = 0; j < 3; j++)
	{
		printf("%d %s %c %d %.2f %s\n", surr[j].num, surr[j].name,
			surr[j].sex, surr[j].age, surr[j].score, surr[j].arr);
	}
	return 0;
}

结构体指针

#include <stdio.h>

struct  student
{
	int num;
	char name[20];
	char sex;
	
};

int main()
{
	struct student s1 = 
	{
		1001, "juju", 'm'
	};
	struct student* p;
	p = &s1;
	printf("%d %s %c", (*p).num, (*p).name, (*p).sex);//由于 . 的优先级高于 * ,所以要加()
	printf("%d %s %c", p->num, p->name, p->sex);
    return 0;
}

 


版权声明:本文为m0_51750419原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。