#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
//描述一个学生,名字,年龄,电话,性别
struct Stu
{
//struct - 结构体关键字,Stu - 结构体标签,struct Stu - 结构体类型
//成员变量
char name[20];
short age;
char tele[12];
char sex[5];
}s1, s2, s3; //是三个全局的结构体变量
typedef struct Stu
{
char name[20];
short age;
char tele[12];
char sex[5];
}Stu; //从新定义Stu类型
struct S
{
int a;
char c;
char arr[20];
double d;
};
struct T
{
char ch[10];
struct S s;
char* pc;
};
void Print1(Stu tmp)
{
printf("name: %s\n", tmp.name);
printf("age: %d\n", tmp.age);
printf("tele: %s\n", tmp.tele);
printf("sex: %s\n\n", tmp.sex);
}
void Print2(Stu* ps)
{
printf("name: %s\n", ps->name);
printf("age: %d\n", ps->age);
printf("tele: %s\n", ps->tele);
printf("sex: %s\n\n", ps->sex);
}
int main()
{
struct Stu s1 = { "张三",20,"15249287076","男" }; //局部的结构体变量
Stu s2 = { "旺财",30,"123422343","保密" };
struct T t = { "hehe",{100,'w',"hello world",3.14},NULL };
printf("%s\n", t.ch);
printf("%s\n", t.s.arr);
printf("%lf\n\n", t.s.d);
Print1(s1);
Print2(&s2);
//上面两种方式选择Print2会更好
//函数传参的时候,参数是需要压栈的。如果传递一个结构体对象的时候,结构体过大,参数压栈的系统开销比较大,会导致性能下降
//结构体传参的时候,要传结构体的地址
return 0;
}
C语言学习笔记20
最新推荐文章于 2024-02-20 17:18:08 发布