栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

c语言结构体

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

c语言结构体

出一期教学吧
结构体==套娃。
1.结构体定义

//结构体入门 
#include
//结构体定义
struct Student
{
	char cName[20];
	char cSex;
	int iGrade;
}student1={"hanXue",'W',3};
//student1和下面的student2都是这个结构体类型的变量;
int main()
{
	struct Student student2={"Wangjiasheng",'M',3};
	
	//将第一个结构体中的数据输出
	//注意结构体变量的引用
	printf("the student1's information:n");
	printf("Name: %sn",student1.cName);
	printf("Sex:%cn",student1.cSex);
	printf("Grand:%dn",student1.iGrade);

	//将第二个结构体中的数据输出	
	printf("the student2's information:n");
	printf("Name: %sn",student2.cName);
	printf("Sex:%cn",student2.cSex);
	printf("Grand:%dn",student2.iGrade);
	return 0;
}

2.结构体数组

//结构体数组

#include

struct Student
{
	char cName[20];
	int iNumber;
	char cSex;
	int iGrade;
}student[5]={{"Wangjiasheng",12062212,'M',3},
			 {"Yulongjiao",12062213,'W',3},
			 {"Jiangxuehua",12062214,'W',3},
			 {"Zhangmeng",12062215,'W',3},
			 {"Hanliang",12062216,'W',3}};
			 
int main()
{
	int i;
	for(i=0;i<5;i++)
	{
		printf("NO%d student:n",i+1);
	 
		printf("Name:%s,Number:%dn",student[i].cName,student[i].iNumber);
		printf("Sex:%c,Grade:%dn",student[i].cSex,student[i].iGrade);
		printf("n");
	}
	return 0;
 } 
 


3.结构体指针
读五遍书不如动手敲一遍。

//结构体指针 
#include

int main()
{
	struct Student{
		char cName[20];
		int iNumber;
		char cSex;
		int iGrade; 
	}student={"SuYuQun",12061212,'W',3};
	
	struct Student* pStruct;
	pStruct=&student;
	printf("----the studet's information----n");
	//以下三种效果是等效的 
	//student.成员名
	//(*pStudent).成员名
	//pStudent.成员名 
	scanf("%s",&student.cName); 
	printf("Name:%sn",student.cName);//用结构体变量引用 
	printf("Name:%sn",(*pStruct).cName);//用指针引用 
	printf("Name:%sn",pStruct->cName);//用指针引用 
	printf("Number:%dn",pStruct->iNumber);
	printf("Sex:%cn",pStruct->cSex);
	printf("Grade:%dn",pStruct->iGrade);
	return 0;
 } 

4.结构体数组指针

#include

struct Student{
	char cName[20];
	int iNumber;
	char cSex;
	int iGrade;
}student[5]={{"Wangjiasheng",12062212,'M',3},
			 {"Yulongjiao",12062213,'W',3},
			 {"Jiangxuehua",12062214,'W',3},
			 {"Zhangmeng",12062215,'W',3},
			 {"Hanliang",12062216,'W',3}};
			 
int main()
{
	struct Student* pStruct;
	int index;
	pStruct=student;//数组名就是首元素的地址
	for(index=0;index<5;index++,pStruct++)
	{
		printf("NO%d student:n",index+1);
	 
		printf("Name:%s,Number:%dn",pStruct->cName,pStruct->iNumber);
		printf("Sex:%c,Grade:%dn",pStruct->cSex,pStruct->iGrade);
		printf("n");
	}
}

5.使用结构体变量作为函数参数

//使用结构体变量作为函数参数 

#include
 
struct Student{
	char cName[20];
	float fScore[3];
}student={"Suyuqun",98.5f,89.0,93.5f};

void Display(struct Student stu)
{
	printf("---information---n");
	printf("Name:%sn",stu.cName);
	printf("Chinese:%.2fn",stu.fScore[0]);
	printf("Math:%.2fn",stu.fScore[1]);
	printf("English:%.2fn",stu.fScore[2]);
	printf("Average score:%.2fn",(stu.fScore[0]+stu.fScore[1]+stu.fScore[2])/3);
} 

int main()
{
	Display(student);
	return 0;
}

6.使用结构体变量的指针作为函数参数

//使用结构体变量的指针作为函数参数 
#include
 
struct Student{
	char cName[20];
	float fScore[3];
}student={"Suyuqun",98.5f,89.0,93.5f};

void Display(struct Student* stu)
{
	printf("---information---n");
	printf("Name:%sn",stu->cName);
	printf("Chinese:%.2fn",stu->fScore[0]);
	printf("Math:%.2fn",stu->fScore[1]);
	printf("English:%.2fn",stu->fScore[2]);
	printf("Average score:%.2fn",(stu->fScore[0]+stu->fScore[1]+stu->fScore[2])/3);
	stu->fScore[2]=90.0f;
} 

int main()
{
	struct Student* pStruct=&student;
	 
	Display(pStruct);
	printf("Change English:%.2fn",pStruct->fScore[2]);
	return 0;
}

7.包含结构的结构
结构体中的结构体==套娃中套娃

//包含结构的结构
#include

struct data
{
	int year;
	int month;
	int day;
}; 
 
struct student
{
	char name[20];
	int num;
	char sex;
	struct data birthday;
}student={"Suyuqun",12061212,'W',{1986,12,6}};

int main()
{
	printf("---information---n");
	printf("Name:%sn",student.name);
	printf("Number:%dn",student.num);
	printf("Sex:%cn",student.sex);
	printf("Birthday:%d.%d.%d.n",student.birthday.year,
			student.birthday.month,student.birthday.day);
	return 0;
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/457640.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号