现在我们直接看一段代码:
实例
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
struct student { //设置结构体类型
int num; //设置变量
char name[10]; //注意,name为数组,数组无法直接修改,但可以通过函数修改
char sex[10];
float score;
};
int main()
{
struct student a = { 1, "张三", "f", 99 }; //类的实例化
printf("%s\n", a.name);
struct student *ap = &a; //设置指针
printf("%s\n", ap->name);
a.num = 199; //可以直接修改变量
printf("%d\n", ap->num); //通过两种方式读取结构体中的name项
printf("%d\n", a.num);
//现在我们尝试用函数修改数组name内保存的数据
strcpy(a.name, "李四"); //strcpy函数复制字符串进name
printf("%s\n", a.name);
return 0;
}
结果
张三
张三
199
199
李四
其过程如下:
1)在主函数外声明一种结构体类型
2)在主函数内调用该结构体,并类的实例化
3)创建指针
4)分别通过指针与操作符读取结构体内的内容
5)使用操作符与函数分别
编程过程中仍产生了一些问题:
1)结构体是以什么状态保存在内存中的?
1)指针无法对结构体内的变量进行直接的修改,那应该怎样使用指针快速修改变量甚至数组?
2)什么是数组?为什么对结构体的char变量设定为数组?