前言
如果对结构体变量的使用不太熟悉,可以先看看博主的这篇文章【C语言】结构体变量定义、初始化、使用
一、定义
1 先声明结构体类型、定义结构体变量:
//声明结构体类型
struct students
{
char name[20];
int age;
};
//定义并初始化结构体变量
struct students stu1={"Allen",18};
2 定义并初始化指向结构体变量的指针
//定义指向结构体变量的指针
struct students *pstu;
pstu=&stu1;
*3 测试字节数
//测试字节数
int sizeofpstu=sizeof(pstu);
printf("指针 pstu 的字节数为:%d\n\n",sizeofpstu);//指针的 size 是 4
printf("指针指向的结构体变量 stu1 的字节数为:%d\n\n",sizeof(*pstu));// pstu 指向的内容 stu1 的 size 是 20 + 4 = 24
二、通过指针引用结构体变量
//通过结构体指针访问结构体变量
printf("姓名 年龄\n\n");
printf("%s %d\n\n",pstu->name,pstu->age);
与以下代码等价:
printf("%s %d\n\n",stu1.name,stu1.age);
附录
完整测试代码如下:
#include <stdio.h>
#include <string.h>
#define P printf
int main()
{
//声明结构体类型
struct students
{
char name[20];
int age;
};
//定义并初始化结构体变量
struct students stu1={"Allen",18};
//定义指向结构体变量的指针
struct students *pstu;
pstu=&stu1;
//测试字节数
int sizeofpstu=sizeof(pstu);
P("指针 pstu 的字节数为:%d\n\n",sizeofpstu);//指针的 size 是 4
P("指针指向的结构体变量 stu1 的字节数为:%d\n\n",sizeof(*pstu));// pstu 指向的内容 stu1 的 size 是 20 + 4 = 24
//通过结构体指针访问结构体变量
P("姓名 年龄\n\n");
P("%s %d\n\n",pstu->name,pstu->age);
//与以下等价
P("%s %d\n\n",stu1.name,stu1.age);
return 0;
}
结果如下: