荣县网站建设,wordpress it模板,商务网站建设综合实训报告,文成网站#x1f680;#x1f680;#x1f680;大家觉不错的话#xff0c;就恳求大家点点关注#xff0c;点点小爱心#xff0c;指点指点#x1f680;#x1f680;#x1f680; 目录 #x1f3e1;前言
#x1f430;结构体的基础知识
#x1f430;结构体的声明
#x… 大家觉不错的话就恳求大家点点关注点点小爱心指点指点 目录 前言
结构体的基础知识
结构体的声明
结构成员类型
结构体变量的定义和初始化
结构体成员访问
结构体传参 前言 c语言提供了内置类型如char,short,int,long,long long,float,double类型。显然这些简单的类型不能表示复杂的情况为了表示复杂对象C语言就引进了新的类型即结构体类型。 结构体的基础知识
结构是一些值的集合这些值称为成员变量。结构的每个成员可以是不同类型的变量。
结构体的声明 struct tag//tag类型名
{member-list;//成员列表}variable-list;//变量列表 例如 struct book
{char name[20];int price;
}b3,b4;//全局变量
int main()
{struct book b1;//局部变量struct book b2;//局部变量
} typedef重定义定义结构体 struct book
{char name[20];int price;
}Book;//这里是类型不是变量注意与上面的b3,b4的区别
int main()
{Book b1;//局部变量Book b2;//局部变量
} 结构成员类型 结构的成员可以是标量、数组、指针甚至其他结构体 结构体变量的定义和初始化 struct book
{char name[20];int price;
}b3,b4;//全局变量
int main()
{struct book b1{c语言,45};//局部变量struct book b2{数据结构,55};//局部变量//不按顺序初始化struct book b1{.price45,.namec语言};//局部变量struct book b2{.price55,.name数据结构};//局部变量
} 结构体成员访问 struct book
{char name[20];int price;
}b3,b4;//全局变量
void Print(struct book* p)
{printf(%s %d,p-name,p-price);
}
int main()
{struct book b1{c语言,45};//局部变量struct book b2{数据结构,55};//局部变量//不按顺序初始化struct book b1{.price45,.namec语言};//局部变量struct book b2{.price55,.name数据结构};//局部变量//结构体.结构体变量printf(%s %d,b1.name,b1.price);printf(%s %d,b2.name,b2.price);//结构体指针-结构体变量Print(b1);
} 结构体传参 传值调用 struct book
{char name[20];int price;
};
void Print(struct book bb1)
{printf(%s %d\n,bb1.name,bb1.price);
}
int main()
{struct book b1;//局部变量Print(b1);
} 传址调用 struct book
{char name[20];int price;
};
void Print(struct book* bb1)
{printf(%s %d\n,bb1-name,bb1-price);
}
int main()
{struct book b1;//局部变量Print(b1);
} 这里看出来传址的效率更高因为函数传参的时候是需要压栈的。如果传递一个结构对象的时候结构体对象的时候结构体过大参数压栈的系统开销比较大所以导致性能下降。 总结 结构体传参的时候要传结构体的地址 如果大家还有不懂或者建议都可以发在评论区我们共同探讨共同学习共同进步。谢谢大家