黑马程序员技术交流社区
标题:
日课6 结构体的注意项
[打印本页]
作者:
黑白世界
时间:
2015-9-24 01:17
标题:
日课6 结构体的注意项
使用结构体是应注意一下问题:
1.声明结构体类型时,系统是不会为其分配内存空间的,只有当定义结构体时才为其分配内存空间。
2.结构体的内存分析:结构体所占内存空间依照“补齐法则”,其所占内存大小,一定是其最大成员类型的倍数,如果不足,则自动补齐。
3.声明结构体结束后,记得在大括号后边添加分号!!!
4.结构体的三种定义方式:
//第一种:先声明结构体类型在定义结构体。
struct person {
int age;
char *name;
};
struct person p1;
//第二种:声明结构体类型的同时定义结构体。
struct person {
int age;
char *name;
} p1;
//第三种:声明结构体类型的同时定义结构体,但是省略结构体类型名称。
//确定:无法复用
struct {
int age;
char *name;
} p1;
复制代码
5.这样初始化结构体是错误的:
struct person {
int age;
char *name;
};
struct person p1;
p1 = {22 , "jack"}; //这样初始化是错误的!
复制代码
一下有三种正确的初始化结构体的方法:
//方法一:
struct person {
int age;
char *name;
};
struct person p1 = {22,“jack”};
//方法二:
struct person {
int age;
char *name;
};
struct person p1;
p1.age = 22;
p1.name = "jack";
//方法三:
struct person {
int age;
char *name;
};
struct person p1 = {.name="jack" , .age=22}; // 这样赋值就可以不按照结构体定义的顺序赋值了。
复制代码
6.结构体的作用域
结构体是有作用域的,具体说就是:
结构体类型只在其类型声明的代码块中有效!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2