结构体类型假设我们要存储一个学生的身份信息,包括学号,姓名 ... 等 此时我们可以自己定义一种类型,来封装这些信息,那么此时我们就可以运用到结构体
站在用户的角度思考问题,与客户深入沟通,找到宾川网站设计与宾川网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站制作、做网站、企业官网、英文网站、手机端网站、网站推广、空间域名、网页空间、企业邮箱。业务覆盖宾川地区。
结构体是一些值的集合,这些值称为成员变量,结构的每个成员可以是不同类型的变量
结构的成员可以是变量、数组、指针、也可以是其它结构体!
在C语言中用 stucrt 来定义结构体类型
#include// 定义结构体类型
struct STU{
int avg;
char name[10];
float hight;
double wight;
};
int main()
{
return 0;
}
结构体变量的定义和初始化我们知道 整型类型 定义变量: int a=0;
浮点型 定义变量:float b=0.0;
指针变量 :int* p=NULL;
以此类推结构体也是一种类型,它也可以定义变量,变量可以初始化!
具体看代码:
#include//创建结构体类型
struct STU {
char name[10];
int age;
float hight;
double wight;
}S1 = { "李真人",289,1.78f,186 };
// 直接在创建类型的时候创建结构体变量 S1,并初始化;
struct STU S2 = { "万孔林",18,1.60f,125 };//定义结构体全局变量 S2;
int main()
{
struct STU S3 = { "悬手低涂",988,1.88f,149 };//定义结构体局部变量S3并初始化!
struct STU * p = NULL; //结构体指针的定义
p = &S1; // 让结构体指针指向结构体变量S1
return 0;
}
结构体成员的访问结构体变量的访问有两种访问方式
第一种是 . 操作符访问:结构体变量.成员变量名
第二种是 ->操作符访问:指针的访问形式:指针->成员变量
#include//定义结构体类型
struct STU {
char name[10];
int age;
float hight;
double wight;
};
int main()
{
//定义结构体变量
struct STU S = { "雷古",58,1.78f,145 };
//用 点 . 操作符访问成员
printf("%s %d %f %lf\n", S.name, S.age, S.hight, S.wight);
// 定义结构体指针
struct STU * p = &S;
//用 ->操作符访问成员
printf("%s %d %f %lf\n", p->name, p->age, p->hight, p->wight);
//以指针解引用的方式访问成员
printf("%s %d %f %lf\n", (*p).name, (*p).age, (*p).hight, (*p).wight);
return 0;
}
结构体传参结构体在函数传参的时候,有两种方式:
1、传值:直接传结构体
2、传地址:传结构体指针
结构体在传参的时候建议传结构体的地址
原因:
函数传参的时候,参数是需要压栈的。 如果传递一个结构体对象的时候,结构体过大,参数压栈的的系统开销比较大,所以会导致性能的 下降。
#includestruct stu {
char namr[10];
int age;
float hight;
double wight;
};
void Prin(struct stu s)
{
// 结构体变量 . 成员变量 访问
printf("%s %d %f %lf\n", s.namr, s.age, s.hight, s.wight);
}
void dayin(struct stu* p)
{
// 指针->成员变量访问
printf("%s %d %f %lf\n", p->namr, p->age, p->hight, p->wight);
// 指针解引用 . 成员变量访问
printf("%s %d %f %lf\n", (*p).namr, (*p).age, (*p).hight, (*p).wight);
}
int main()
{
struct stu s = { "大帝蟒",28,1.79f,189 };
struct stu* p = &s;
Prin(s);//传值,传结构体
dayin(p);// 传址,传结构体指针
return 0;
}
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧