C语言结构体详细讲解

发布时间:2024年01月18日

什么是结构体&如何定义结构体

结构体是把一些基本数据类型组合在一起形成一个新的复杂的数据类型

结构体的三种定义方式(推荐使用第一种)

·结构体第一种定义方式

#include<stdio.h>

//第一种方式

struct?Student?{

int?age;

float?score;

char?sex;

};

int?main() {

struct?Student?st = { 80,66.6,'f'?};

printf("%d\n",st.age);//80

return?0;

}

·结构体第二种定义方式

#include<stdio.h>

//第一种方式

struct?Student?{

int?age;

float?score;

char?sex;

}st;

int?main() {

st.age = 80;

printf("%d\n",st.age);//80

return?0;

}

·结构体第三种定义方式

#include<stdio.h>

//第一种方式

struct?{

int?age;

float?score;

char?sex;

}st;

int?main() {

st.age = 80;

printf("%d\n",st.age);//80

return?0;

}

对于上面的结构体,结构体的类型是struct Student,这个类型的变量是st、st1、st2……

结构体变量的使用

赋值和初始化

下面是结构体变量初始化的两种方式:

#include<stdio.h>

//第一种方式

struct?Student{

int?age;

float?score;

char?sex;

};

int?main() {

struct?Student?st = { 80,12.21,'m'?};

//定义的同时进行初始化

struct?Student?st2;

st2.age = 12;

st2.score = 100;

st2.sex = 'f';

//先定义,然后对结构体每个成员变量单独赋值

return?0;

}

如何取出结构体变量中的每一个成员

  1. 结构体变量名.成员变量名
  2. 指针变量名->成员变量名

#include<stdio.h>

struct?Student{

int?age;

float?score;

char?sex;

};

int?main() {

struct?Student?st = { 80,12.21,'m'?};

//取出结构体中的age

printf("%d\n", st.age);

struct?Student* pst = &st;

printf("%d\n", pst->age);

return?0;

}

pst->age在计算机内部会被转化成(*pst).age

结构体变量的运算

函数参数传递的问题

#include<stdio.h>

#include<string.h>

struct?Student{

int?age;

float?score;

char?sex;

};

void?InputStudent(struct?Student?* pstu) {

pstu->age = 10;

pstu->score = 12.34;

pstu->sex = 'm';

}

void?OutputStudent(struct?Student?ss) {

printf("%d ?%f ?%c ?\n", ss.age, ss.score, ss.sex);

}

int?main() {

struct?Student?st;

InputStudent(&st);

OutputStudent(st);

return?0;

}

结构体变量的运算

结构体变量之间不能相互加减乘除,但是同类型的结构体变量之间可以相互赋值

文章来源:https://blog.csdn.net/2301_82018821/article/details/135652751
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。