C++基础之结构体

来源:互联网 发布:宁波大学c语言复试 编辑:程序博客网 时间:2024/06/05 00:32

1、结构体变量名不是地址,不能单独使用(结构体变量的地址为第一个成员变量的地址)。

2、结构体变量开放了内存区,存在栈区。

3、结构体中是有拷贝构造函数的,结构体变量默认是深拷贝(又在内存区中开辟了一段内存)【结构体变量名作为形参和结构体变量实参之间是深拷贝】

4、

typedef struct student{int id;char *name;}student;       //结构体所占字节数为:4+4=8个字节student *stu[2];   // 指针数组student **p;p=stu;  //  stu[0]<====>student *类型(指针) <======> null

p[0]->id = 1; //错误,因为指针所指向的区域并没有被开辟空间!!


以上示例,展示了怎样开辟指针所指的内存空间。

则要使用student **p;需要用以下步骤将内存空间进行开辟:



一般定义了一个变量,就自动为该变量开放了内存区。

定义了一个指针,就会自动为该指针开放内存区,但是该指针所指向的区域内存并没有被开辟。 


原创粉丝点击