结构体学习(1)

应用结构体的原因:
为使将不同类型的数据组合成一个有机体。

示例:
学生的学号/姓名/性别/年龄/地址等;
int num; char name[20];char sex;int age;
char addr[30];所需这些数据类型。

定义一个结构的一般形式为:
struct (结构名可有可无)
{
组成部分
};
其中组成部分的分为若干个小部分
且它们的形式为:
类型说明符 名称;

特此说明,初次学习的时候,可能会把struct看成strcat,strcat使在有头文件#include<string.h>才可使用。struct则不需要

由示例(1)进行实操;

struct student
{
    
    
   int num;
   char name[20];
   char sex;
   int age;
   float score;
   char addr[30];
 };

也可在其后加上变量名;

struct student
{
    
    
   int num;
   char name[20];
   char sex;
   int age;
   float score;
   char addr[30];
 }girl , boy;

注意:
在定义了结构体变量以后,当然可以引用这个变量。但得遵守以下规则:
1.不能将一个结构体变量作为一个整体进行输入输出。
正确引用结构体变量中组成部分的方式为:
结构体变量名.组成部分的名称
例如:girl.num表示girl变量中的num(学号)这部分,同时可对进行赋值:girl.num=100;
输出方式也为:printf("%d",girl.num);
输入方式:scanf("%d",&girl.num);

"."这个运算符是所有运算符中优先级最高的,因此可以把girl.num作为一个整体看待。

如果组成部分中又隶属于一个结构体类型,则要用若干个成员运算符,一级一级地找到最低的一级的成员。只能对最低级的成员进行赋值或存取以及运算。

这就牵涉到结构体的嵌套:

struct date
{
    
    
 int year;
 int month;
 int day;
 }birthday;
 
struct student
{
    
    
   int num;
   char name[20];
   char sex;
   int age;
   struct date;
   float score;
   char addr[30];
 }girl;

对month进行赋值有:
girl.birthday.month;

对结构体变量的组成部分可以像普通变量一样进行各种运算(根据其类型决定可以进行的运算)。
例如:
girl.score++;sum=girl.score+boy.score;

可以引用结构体变量组成部分的地址也可用结构体变量的地址。这种用法就与数组相类似了

#include<stdio.h>
int main()
{
    
    
	struct st
	{
    
    
		int num;
		char name[20];
		int score;
		char sex;
	}girl,boy;

	boy.num=10001;

	printf("xuehao=%d\n",boy.num);
	printf("xuehao=%d\n",boy);
}

在这里插入图片描述
运行结果是一样的;
printf(“xuehao=%d\n”,boy);由数组来看是从第一个开始输出(脚标[0])——也就是num。

猜你喜欢

转载自blog.csdn.net/yooppa/article/details/112435126