-
定义struct变量后,在main函数的调用时//定义时struct不可以省略
-
struct sudent s1;//这个可以省略
s1.name="name"; -
struct sudent s2={"学生","18"};
cout<<s2.name结构体数组
-
在main函数中
-
struct Student stuarray[3]=
{
{"张三",21,34},//stuarray[1]
{"李四",71,54},//stuarray[2]
{"王五",56,15},//stuarray[3]
}//相当于一个arr[3][3]的一个数组。 -
赋值时
-
stuarray[2].name="赵六";
结构体指针
-
struct Student s={值,值};
struct Student *p=&s;
*p=值//可以修改或赋值
//通过指针访问结构体变量中的数据
p->name结构体的嵌套
-
- struct sudent
- {
string name;
int age;
int score;
}
struct teacher
{
int id;
string name;
int age;
struct student stu;//在老师的结构体中嵌套学生类的结构体
} -
访问student中的变量时
-
struct teacher tea;
tea.stu.name=" ";结构体的值传递和地址传递
void print01 (struct student stu)//值传递
{
cout<<stu.name;
}void print02 (struct student *stu)//如果加入const变为常量指针
{
stu->name;
}-
main函数中
-
print(stu);
print(&stu)面向对象内存四区
程序运行前
-
代码区:存放函数体的二进制代码,由操作系统进行管理
-
全局区:存放全局变量和静态变量和常量
程序运行后
-
栈区:由编译器自动的分配,存放函数的参数值,局部变量。
-
堆区:由程序员分配和释放。不释放由程序自个释放
-
意义:实现不同的周期赋予不用的生命周期灵活的编程。
代码区
-
启动应用的exe程序中的代码区时共享的
共享:代码区就一份代码
-
-
-
-
-
-
代码区是只读的,防止被修改