电子商务网站开发这书不出版了吗,网站自主建站,站长工具无吗经典,办公室装修效果图现代一、结构的基础知识
结构是一些值的集合#xff0c;这些值称为成员变量结构的#xff0c;每个成员可以是不同类型的变量。
二、结构的声明
struct tag
{member-list;
}variable-list;
描述一个学生#xff1a;
typedef struct Student
{char name[20]; //姓名int age; …一、结构的基础知识
结构是一些值的集合这些值称为成员变量结构的每个成员可以是不同类型的变量。
二、结构的声明
struct tag
{member-list;
}variable-list;
描述一个学生
typedef struct Student
{char name[20]; //姓名int age; //年龄char sex; //性别char id[20]; //学号
}
Student;
三、结构成员的类型
结构的成员可以是标量、数组、指针甚至是其他结构体。
结构体变量的定义和初始化
有了结构体类型如何定义变量。
struct Point
{int x;int y;
}p1;//结构体类型的同时定义变量p1。
struct Point p2;//结构体类型的同时定义变量p2。// 初始化定义变量的同时赋初值。
struct Point p3 {x,y};struct Student // 类型声明{char name[20]; //名字int age; //年龄};struct Student stu {张三, 20};// 结构体变量的初始化。struct Node{int data;struct Node *next;}n1 {10,{4,5},NULL};// 结构体嵌套的初始化。struct Node n2 {20,{5,6},NULL};// 结构体嵌套的初始化。
四、结构体成员的访问
结构体变量访问成员结构变量的成员是通过点操作符 . 访问的.点操作符接受两个操作数。例
struct Student
{char name[20];int age;
};
struct Student s;
如何访问s的成员如下
struct S s;
strcpy (s.name,张三);
s.age18; //使用.运算符访问结构体成员变量
结构体指针访问指向变量的成员有时候我们得到的不是一个结构体变量而是指向一个结构体的指针
因此我们需要使用-运算符来如何访问成员。
struct Student
{char name[20];int age;
};
void printf_student(struct Student *s)
{printf(姓名:%s 年龄:%d\n,(*s)name,(*s).age);//使用结构体指针访问成员变量printf(姓名:%s 年龄:%d\n,s-name,s-age);
}
int main()
{struct Student s{张三,18};printf(s);return 0;
}
五、结构体传参
#includestdio.h
struct Student
{char name[20];int age;
};
//结构体传参
void printf1(struct Student s)
{printf(姓名:%s 年龄:%d\n,s.name,s.age);
}
//结构体地址传参
void printf2(struct Student *s)
{printf(姓名:%s 年龄:%d\n,s-name,s-age);
}
int main()
{struct Student s{张三,18};printf1(s);printf2(s);return 0;
}可见printf2函数好些原因 函数传参的时候参数是需要压栈的。 如果传递一个结构体对象的时候结构体过大参数压栈的系统开销比较大会导致性能的下降
结论结构体传参的时候要传结构体的地址。