C语言_结构体
2014-10-24 11:08
106 查看
结构体
一.1.结构体定义
结构体是一种自定义的数据类型
用struct关键字声明一个结构体
2.定义一个结构体变量
类型变量名初始值
需要注意struct+结构体的名字是变量类型
初始值的顺序与声明结构体内的成员顺序一致
3.结构体如何访问成员
引入一个新的操作符.
先找到结构体变量p1,再通过.操作符访问y的成员
4.类型重定义
定义一个尺寸的结构体,把size结构体重新定义为Size
第一种方式
例二:
定义一个结构体
把struct soldier类型重新定义成Sodier
定义四个结构体变量
结构体可以直接赋值
结构体数组内存放的都是结构体变量
通过结构体变量来找到血型的成员array[3].bloodType
1.先找到结构体变量 array[3]
2.通过.操作找到bloodType
array[3].name是什么----->name字符串的首地址
如何修改name这个字符串-->改成XXX
定义一个打印一个结构体变量函数
打印结构体数组的函数
调用打印结构体信息的函数
调用打印结构体数组的函数
一.1.结构体定义
结构体是一种自定义的数据类型
用struct关键字声明一个结构体
struct point { // 结构体的成员 int x; int y; };
2.定义一个结构体变量
类型变量名初始值
需要注意struct+结构体的名字是变量类型
初始值的顺序与声明结构体内的成员顺序一致
struct point p1 = {3, 5};
3.结构体如何访问成员
引入一个新的操作符.
先找到结构体变量p1,再通过.操作符访问y的成员
p1.y = 50; printf("%d\n", p1.x);
4.类型重定义
typedef int DT;
相当于给int起了一个别名叫DT, 但是原来的类型名也可以用例一:
定义一个尺寸的结构体,把size结构体重新定义为Size
第一种方式
typedef struct size{ int width; int height; }MYSize;第二种方式
struct size{ int width; int height; }; typedef struct size MYSize
例二:
定义一个结构体
struct soldier { char name[20]; // 军衔 char rank[20]; // 血型 char bloodType[2]; };
把struct soldier类型重新定义成Sodier
typedef struct soldier Soldier;
定义四个结构体变量
Soldier s1 = {"项羽", "元帅", "B"}; Soldier s2 = {"关羽", "上将", "O"}; struct soldier s3 = {"张苞", "少校", "S"}; struct soldier s4 = {"弹头", "伙头兵", "AB"};
结构体可以直接赋值
Soldier s5 = s2;
结构体数组内存放的都是结构体变量
Soldier array[4] ={s1, s2, s3, s4};
通过结构体变量来找到血型的成员array[3].bloodType
1.先找到结构体变量 array[3]
2.通过.操作找到bloodType
array[3].bloodType;
array[3].name是什么----->name字符串的首地址
printf("%s\n",array[3].name);
如何修改name这个字符串-->改成XXX
strcpy(array[3].name, "张张张");
// array[3].name = "张张张"; 错误的 字符串的修改需要用字符串相关函数
定义一个打印一个结构体变量函数
// 从规范上来讲, 不应该省略函数声明 void printStruct(Soldier s); void printStruct(Soldier s) { // 函数内可以直接访问形参的成员 printf("%s %s %s\n", s.name, s.rank, s.bloodType); }
打印结构体数组的函数
void printArray(Soldier array[], int count); void printArray(Soldier array[], int count) { for (int i = 0; i < count; i++) { printStruct(array[i]); } }
调用打印结构体信息的函数
printStruct(array[3]);
调用打印结构体数组的函数
printArray(array, 4);
相关文章推荐
- C语言——结构体与指针引用&结构体数组与指针引用
- C语言——结构体与联合体
- C语言中结构体(struct)的初始化
- c语言结构体对齐规则
- 18.从零开始学习C语言--结构体
- C语言&nbsp;关于结构体的内存对齐
- c语言中共用体与结构体的区别
- c语言结构体的位域相关知识
- 129 C语言FILE结构体以及缓冲区深入探讨
- C语言中的结构体内存对齐
- C语言中结构体指针的成员变量访问
- C语言用结构体和指针实现面向对象编程
- java开发C语言解释器:间套结构体的解释和执行
- 【C语言】用结构体数组指针完成:有三个学生信息,存放在结构体数组中,要求输出全部信息
- C语言中的结构体数组
- JNA—模拟C语言结构体
- C语言--结构体和枚举
- C语言 结构体的内存对齐问题与位域
- C语言中结构体赋值问题的讨论
- C语言__结构体总结