结构体及其简单修改(day4)

时间:2022-11-06 18:59:48

现在我们直接看一段代码:

实例

#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变量设定为数组?