C语言之初识结构体

目录

1.结构体的定义
2.结构体的定义形式
3.程序示例
4.总结

1. 结构体的定义

    1.1 程序开发人员可以使用结构体来封装一些属性,设计出新的类型,在C语言中称为结构体类型
    1.2 在C语言中提供了基本数据类型,比如char,short,int,float…等类型,我们称之为内置类型而结构体是一种数据类型。(是由程序开发者自己设计的类型)

2. 结构体的定义形式

struct 结构体名
{
        成员列表( 可以是基本数据类型, 指针, 数组或其它结构体类型
};

注:结构体定义的花括号{ }后面的 ”;“不可少,而函数的定义的花括号{ }后面没有分号。

3. 程序示例

3.1 设计学生类型

#include<stdio.h>
/** 学生类型 */
struct Student				//student为结构体的类型名
{							//结构体类型的成员
	char s_id[10];			//学生id
	char s_name[10];		//学生姓名
	char s_sex[5];			//学生性别
	int s_age;				//学生年龄
};							//结构体中 ;不可少
int main()
{
	//定义结构体变量 并初始化
	struct Student stud = { "s20210414","WartenSIE","man",23 };
	//使用 . 来访问结构体变量的成员
	printf("id:	    %s\n", stud.s_id);
	printf("name:	%s\n", stud.s_name);
	printf("sex:	%s\n", stud.s_sex);
	printf("age:	%d\n", stud.s_age);
	return 0;
}

运行结果
在这里插入图片描述
3.2 指针类型

#include<stdio.h>

struct Student				//student为结构体的类型名
{
	char s_id[10];			//学生id
	char s_name[10];		//学生姓名
	char s_sex[5];			//学生性别
	int s_age;				//学生年龄
};

int main()
{
	int a = 10;
	int* ip = &a;							//将a的地址赋值给ip
	//定义结构体变量 并初始化
	struct Student s1 = { "s20210414", "WartenSIE", "man", 23 };

	struct Student* sp = &s1;				//sp = &s1; *sp = s1; 
	printf("id:%s\n", (*sp).s_id);			//(*sp).s_id ==> sp->s_id
	printf("id:%s\n", sp->s_id);

	printf("ip size:%d\n", sizeof(ip));		//ip的类型为整型指针       int  x86 4bit;x64 8bit
	printf("sp size:%d\n", sizeof(sp));		//sp的类型为结构体类型指针      x86 4bit;x64 8bit
	return 0;
}

运行结果

①. x86平台
在这里插入图片描述
②. x64平台
在这里插入图片描述

4. 总结

    4.1 结构体定义的花括号{ }后面的 ”;“不可少,而函数的定义的花括号{ }后面没有分号。
    4.2 定义结构体变量并初始化后,使用 . 来访问结构体变量的成员。
    4.3 定义结构体指针类型的变量时struct Student* sp = &s1; 访问结构体变量的成员用(*sp).s_id 或 sp->s_id,一般采用后者。
    4.4 整型指针和结构体类型指针在x86平台的字节大小为 4bit;在x64平台的字节大小为 8bit。
    4.5 结构体是一种数据类型,是由程序开发者自己设计的类型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值