成都模板建站,网络公司举报找哪个部门,静态网页制作源代码,网站广告位结构体类型的声明
结构是一些值的集合#xff0c;这些值称为成员变量#xff0c;结构的每个成员可以是不同类型的变量
数组#xff1a;一组相同类型元素的集合
结构体#xff1a;其实是一组不一定相同类型元素的集合
//结构声明
// struct tag //tag根据实际情况给名字…结构体类型的声明
结构是一些值的集合这些值称为成员变量结构的每个成员可以是不同类型的变量
数组一组相同类型元素的集合
结构体其实是一组不一定相同类型元素的集合
//结构声明
// struct tag //tag根据实际情况给名字
// {
// member-list; //成员列表1个或者多个
// }variable-list;//变量列表//描述一个学生
//名字年龄性别//声明结构体类型
// struct Stu
// {
// //成员变量是用来描述结构体对象的相关属性的
// char name[20];
// int age;
// char sex[5]; //男 女 保密
// }; //s2,s3,s4;//s2,s3,s4就是结构体变量 - 全局变量// typedef struct Stu //重命名
// {
// //成员变量是用来描述结构体对象的相关属性的
// char name[20];
// int age;
// char sex[5]; //男 女 保密
// } Stu;// int main()
// {
// struct Stu s1; //局部变量
// //Stu s2; //在c语言中没有对结构体类型typedefstruct关键字不能省略// return 0;
// }
结构体初始化
//结构成员的类型
struct S
{int a;char arr[5];int* p;
}s1 {100,fan,NULL};//int n 2023;
// struct S s2 {98,111,n};
struct S s2 {98,111,NULL};struct B
{char arr[10];struct S s;double d;
};int main()
{struct S s3 {.arr aaa, .a 10, .p NULL};//printf(%d %s %p\n,s1.a,s1.arr,s1.p); //结构成员访问操作符//printf(%d %s %p\n,s2.a,s2.arr,s2.p);//printf(%d %s %p\n,s3.a,s3.arr,s3.p);struct B b {hello,{20,aaa,NULL},3.14};printf(%s %d %s %p %lf\n,b.arr, b.s.a, b.s.arr, b.s.p, b.d);return 0;
}
结构体成员访问
struct Stu
{/* data */char name[20];int age;
};// void set_stu(struct Stu* ps)
// {
// (*ps).age 20;
// //t.name 张三; //err
// strcpy((*ps).name,张三); //字符串拷贝
// }void set_stu(struct Stu* ps)
{ps-age 20; //结构体成员访问操作符 结构体指针 - 结构体成员//t.name 张三; //errstrcpy(ps-name,张三); //字符串拷贝
}void printf_stu(struct Stu t)
{printf(%s %d\n,t.name,t.age);
}int main()
{struct Stu s {0};set_stu(s); //传值调用printf_stu(s);return 0;
}结构体传参
//结构体传参
struct S
{/* data */int data[1000];int num;
};struct S s {{1,2,3,4},1000};
//结构体传参
void print1(struct S s)
{printf(%d\n,s.num);
}
//结构体地址传参
void print2(struct S* ps)
{printf(%d\n,ps-num);
}int main()
{print1(s); //传结构体print2(s);//传地址return 0;
}
//结构体传参尽量选用结构体地址传参