#C语言-基础篇(Ⅳ)

本文介绍了C语言中的结构体基础知识,包括如何创建结构体、初始化结构体变量以及如何打印结构体中的数据。通过示例代码详细阐述了结构体在描述复杂对象如学生信息时的应用,并讲解了点操作符和箭头操作符的使用方法。结构体在后续的数据结构学习中扮演重要角色。
摘要由CSDN通过智能技术生成

目录

九、结构体(基础)

9.1 创建结构体

 9.2 结构体初始化

 9.3 结构体变量的数据打印

 10、结语


九、结构体(基础)

       定义:用于描述复杂对象,

9.1 创建结构体

       比如:描述一个学生,需要的是,姓名+性别+年龄+学号。

       代码9_1:创建一个学生结构体:

#include<stdio.h>

struct Student
{//创建结构体
	char name[20];//用于存储姓名
	char sex[10];//用于存储性别
	short age;//用于存储年龄
	int number;//用于存储学号
};

说明:

(1)创建结构体需要用到关键字struct,同时需要结构体名称;

(2)结构体中的变量在创建时均未存储,所以不用初始化,但数组中的元素个数必须为确定的;

(3)结构体创建结束后的分号不可少;

 9.2 结构体初始化

         创建好一个结构体后,在主函数中,我们需要再创建一个结构体变量,即申请空间来存储信息后,才能够初始化。

代码9_2,创建结构体变量并初始化:

#include<stdio.h>

struct Student 
{
	char name[20];
	char sex[10];
	short age;
	int number;
};

int main() 
{

    //创建结构体变量st1、st2
	struct Student st1={"张三","男",20,20211024};
    struct Student st2={"李四",“男”,18,20212025};

	return 0;
}

说明:

以上代码即完成了创建结构体变量以及初始化,st1、st2为结构体变量,类型是struct Student类型,初始化应使用大括号,其中字符串用双引号引起,数字不需要,并且初始化顺序与结构体中保持一致

补:

字符串中,如果是字母字符串,每一个字母所占空间为一个字节;如果是文字字符串,每一个汉字所占空间为两个字节。

 9.3 结构体变量的数据打印

       打印结构体中的数据,就需要访问到结构体的数据并取出来。这时,我们就要用到操作符中没有介绍的两个:点操作符.和箭头操作符->(结构体成员访问操作符)

#include<stdio.h>

struct Student
{
	char name[20];
	char sex[10];
	short age;
	int number;
};

int main() 
{

	struct Student st1 = { "张三","男",20,20211024 };
	struct Student st2 = { "李四","男",18,20211025 };
	struct Student* list = &st1;//list为指针变量,类型是struct Student*

	printf("%s %s %d %d\n", st1.name, st1.sex, st1.age, st1.number);

	printf("%s %s %d %d\n", (*list).name, (*list).sex, (*list).age, (*list).number);

	printf("%s %s %d %d\n", list->name, list->sex, list->age, list->number);

	return 0;
}

说明:

打印结构体变量中的数据使用的就是点操作符以及箭头操作符。

(1)点操作符:结构体变量.结构体成员,使用解引用符号时必须要有括号

(2)箭头操作符:结构体指针变量->结构体成员

(3)以上用法均为规定用法。

        结构体基础我们就介绍到这里,点到为止。后期会有更加详细的介绍,值得一提的是,结构体的用处非常之大,比如后面会学习的数据结构,其中就使用了大量的结构体。

 10、结语

       到这里C语言基础篇就宣布完结了,掌握了基础后,相信对C语言有了初步的了解,希望在接下来的学习中再接再厉。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值