黑马程序员-C语言结构体使用的相关细节
来源:互联网 发布:学钢琴 软件 编辑:程序博客网 时间:2024/05/17 08:32
一、定义:
struct 结构体名{
成员列表;
}; //注意此处的分号不能省
1)先定义结构体,然后在定义结构体变量
//注意:
1)结构体定义完成以后,计算机并不会给结构体分配内存空间
2)会在定义结构体变量后,分配存储空间
//结构体变量定义格式:
struct 结构体名 结构体变量名;
2)定义结构体的同时,定义结构体变量
格式:
struct 结构体名{
成员列表;
}结构体变量1,结构体变量2....;
3)使用匿名结构体定义结构体变量
struct {
成员列表;
}结构体变量1,结构体变量2....;
二、结构体成员的访问
方法:结构体变量名.成员变量
注意:如果成员变量中有字符数组,则在对其进行初始化的时候,不能将一个字符串直接赋值给该
字符数组,而应该用strcpy函数对其进行赋值
范例:
struct Student{
//学生学号
int sno;
//学生姓名
char name[21];
//学生年龄
int age;
};
//先定义结构体变量,然后再初始化
struct Student stu1;
//给结构体变变量初始化
stu1.sno = 38;
stu1.age = 18;
stu1.name="张三丰";//该语句报错,因为name是数组名称,是一个常量,不能对其赋值
//应该采用如下方法对其赋值
strcpy(stu1.name, "张三丰");
//定义结构体的同时,还可以指定元素的部分初始化
struct Student stu2={.name = "lady Gaga"};
三、结构体指针
定义:指向结构体变量的指针
使用结构体指针访问结构体变量的成员有两种方式:
1)*结构体指针变量名.成员名
2)结构体变量指针->成员名
范例:
struct Student{
//学生姓名
char name[21];
//学生年龄
int age;
}stu1={"zhangsan",18},*p=NULL;
p = &stu1;
printf("%s",p->name);
printf("%d",*p.age);
//注意:只有结构体指针才能使用p->name这种方式访问成员,不能直接使用结构体变量
名这样访问
四、结构体嵌套
定义:一个结构体变量是另一个结构体定义时候的成员
注意:1)定义结构体时不能嵌套自己的结构体变量
2)可以嵌套自己的结构体指针变量
0 0
- 黑马程序员-C语言结构体使用的相关细节
- 黑马程序员---C语言结构体
- 13、黑马程序员-C语言结构体
- [黑马程序员][C语言]结构体
- 黑马程序员 C语言基础:结构体
- 黑马程序员--c语言结构体介绍
- 黑马程序员----- c语言结构体
- 黑马程序员--学习C语言结构体
- [黑马程序员]C语言结构体
- 【黑马程序员】C语言结构体
- 【黑马程序员】C语言基础-结构体
- 黑马程序员-C语言-结构体
- 黑马程序员-C语言-结构体
- 黑马程序员——c语言复杂数据类型:结构体和枚举,typedef的使用
- 黑马程序员----C 语言学习笔记之结构体数组,指针,嵌套的使用
- 黑马程序员——C语言基础——结构体相关练习
- 黑马程序员---C语言typedef的使用
- 黑马程序员——C语言的循环结构总结
- 46 Useful Utility Functions For #Delphi XE8
- 使用libsvm实现文本分类
- 在网上找来的几个大牛,忽然觉得自己来参加ACM倒也不是一件错误的事情,梦想总是要有的,万一成了呢。
- Django Book CH3(视图和URL配置)
- hdoj Radar Installation
- 黑马程序员-C语言结构体使用的相关细节
- 7.31css布局模型
- 使用O-LLVM和NDK对Android应用进行混淆
- 初级Javascript(一)
- Log4j配置说明
- 八皇后问题
- 九度oj 1190
- iOS 9之Advanced Touch Input(高级触摸输入)
- HDU 1276(士兵排列)