1 声明结构体
声明结构体 关键字struct 结构体名字 {类型修饰符 成员名};
声明一个学生的结构体第一种方法
struct student{
char name[20]; // 结构体成员中可以使用另外的构造类型. int number; // 每个成员之间使用;隔开. int age; float score;};typedef struct student Student; // 将现有的类型修饰符该别名为 Student关键词 typedef 用于改别名
第二种方法typedef struct teacher{ char name[20]; char gender; int age; char major[20]; }Teacher;第二种最常用
结构体声明写在main函数上边或写在.h文件中
2 结构体的使用(在main函数中)
struct teacher tea1 = {"shenqingchang",'m',23,'c'};
// 结构体成员变量不能使用变量名全部输出成员信息 printf("%s",tea1);不对的输出正确输出
printf("%s",tear1.name);
修改成员名
int a = 0; a = 10; 修改第一名老师的年龄为 15 tear1.age = 15; printf("%d",tear1.age); // 修改第一名老师的名字为"dingchuyuan" tear1.name = "dingchuyuan"; // 错误的修改方式 strcpy(tear1.name, "dingchuyuan"); printf("%s\n",tear1.name);修改或输出结构体时,成员变量需要结构体名加"."加变量名才能用举例 tear1.name = "zhangsan" 这样写才能修改
3 结构体内存占用空间
1 结构体成员变量,储存是从上至下,从第一开始储存 2 在内存中,储存成员变量时,规则是: 个数据类型的倍数储存,如果被占用,向下延伸 3 计算结构体成员的空间,总和数 = 成员变量中最大字节数的最小倍数4 结构体在函数中的运用结构体运用在函数中需要写在.h的声明文件中,其它和函数没有太大区别
举例
A 声明结构体
#import <Foundation/Foundation.h>
// 使用声明函数typedef struct teacher{ char name[20]; int age; float score; }Teacher;// 打印所有老师信息void showInfoOfTeachers(Teacher array[],int count);B 实现(定义)函数
#import "Teacher.h"
//输出所有老师信息
void showInfoOfTeachers(Teacher array[],int count){ printf("老师信息:\n"); for (int i = 0; i < count; i++) { printf("%-20s %-2d %.2f\n",array[i].name,array[i].age,array[i].score); }}C调用函数在main函数里
Teacher tea[4] = {
{"wangke",25,90}, {"sunning",40,89}, {"xulaoshi",50,78}, {"wangcuiling",35,91}showOfTeachers(tea, 4);