公司网站 钓鱼网站,移动网站功能,seo搜索引擎优化到底是什么,建设网站dns如何设置目录
概念#xff1a;
与数组类比#xff1a;
结构体声明#xff1a;
注意#xff1a;
结构体变量、全局变量、局部变量#xff1a; 结构体声明中包含其他结构体变量#xff1a;
结构体变量的初始化#xff1a;
包含了其他结构体变量的初始化#xff1a; 结构体…目录
概念
与数组类比
结构体声明
注意
结构体变量、全局变量、局部变量 结构体声明中包含其他结构体变量
结构体变量的初始化
包含了其他结构体变量的初始化 结构体变量的打印
包含其他结构体变量的打印 结构体变量的传参
直接传参
地址传参 两种传参的区别 概念
结构是⼀些值的集合这些值称为成员变量。结构的每个成员可以是不同类型的变量。
与数组类比 数组是同一种类型的元素的集合而结构体也是一种结合且结构体内部的元素可以是不同类型的数据。 结构体声明
struct tag
{member-list;
}variable-list;struct是结构体的关键字不可更改。tag是结构体的名字或者标签可以更改。member-list 结构体的成员列表表示结构体内部的元素。variable-list 结构体的变量成员列表表示类型是结构体的变量可以省略。
注意 声明只是表示结构体的类型并不占内存的空间只有结构体变量初始化或者进行改变的时候才会占用内存空间。 结构体变量、全局变量、局部变量
比如
struct Peo
{char name[20];char tele[12];char sex[5];int high;
}p1p2;int main()
{return 0;
} p1和p2都是结构体struct peo类型的变量而且是全局变量。
struct Peo
{char name[20];char tele[12];char sex[5];int high;
}int main()
{struct peo p;return 0;
}
p是结构体 struct peo类型的变量但是它是局部变量。 结构体声明中包含其他结构体变量
struct Peo
{char name[20];char tele[12];char sex[5];int high;
}struct st
{struct peo p;int num;float f;
}int main()
{struct peo p;return 0;
}
结构体struct st中包含了结构体struct peo类型的变量 p
结构体变量的初始化
struct Peo
{char name[20];char tele[12];char sex[5];int high;
}int main()
{struct peo p {张三,15596668862, 男, 181};return 0;
} 包含了其他结构体变量的初始化
struct Peo
{char name[20];char tele[12];char sex[5];int high;
}struct st
{struct peo p;int num;float f;
}int main()
{struct st s { {lisi,15596668888女166}1083.14f};return 0;
}
在包含其他结构体的变量时进行初始化也要把其他结构体变量中的内容进行初始化。比如以上代码中的{lisi,15596668888女166}就是结构体声明struct st中的另一个结构体变量struct peo p的变量的初始化。 结构体变量的打印
struct Peo
{char name[20];char tele[12];char sex[5];int high;
}int main()
{struct peo p {张三,15596668862, 男, 181};printf(%s %s %s %d\n, p.name, p.tele, p.sex, p.high);return 0;
}
结构体打印的时候需要使用操作符 “ . ” 进行指引。
格式结构体变量名 . 结构体成员名
包含其他结构体变量的打印
struct Peo
{char name[20];char tele[12];char sex[5];int high;
}struct st
{struct peo p;int num;float f;
}int main()
{struct st s { {lisi,15596668888女166}1083.14f};printf(%s %s %s %d %d %f\n, s.p.name, s.p.tele, s.p.sex, s.p.high, s.num, s.f);return 0;
}
包含其他结构体变量的打印方式如以上代码所示。
本结构体变量名.其他结构体变量名.列表成员名 —打印出其他结构体变量内部的结构体成员名的格式。 结构体变量的传参
直接传参
struct Peo
{char name[20];char tele[12];char sex[5];int high;
}void print1(struct Peo p)
{printf(%s %s %s %d\n, p.name, p.tele, p.sex, p.high);
}int main()
{struct peo p {张三,15596668862, 男, 181};print1(p1);return 0;
}
地址传参
struct Peo
{char name[20];char tele[12];char sex[5];int high;
}void print2(struct Peo *sp)
{printf(%s %s %s %d\n,sp-name, sp-telesp-sexsp-high);
}int main()
{struct peo p {张三,15596668862, 男, 181};print2(p1);return 0;
}
传参地址在打印的时候需要使用指针名-结构体成员名的格式
void print2(struct Peo *sp)
{printf(%s %s %s %d\n,sp-name, sp-telesp-sexsp-high);
}void print1(struct Peo p)
{printf(%s %s %s %d\n, p.name, p.tele, p.sex, p.high);
} 两种传参的区别 实参直接传给形参其实是一种拷贝形参也要开辟一个和实参一样大的空间而后将实参的数据拷贝给形参但是这样子会造成空间浪费拷贝数据时也会浪费相对因的时间若实参越大浪费的空间越大拷贝的时间越多。把结构体变量的地址作为实参传递给形参形参就只需要创建一个指针的变量空间通过这个指针变量找结构体的所在空间位置进行读取数据。 结论所以结构体传参的时候一般使用传递结构体变量的地址进行传参。