一、目的
- 学习指针的基本概念并掌握其使用方法。
- 掌握动态分配内存的方法。
- 学习结构体、文件的相关知识,并将结构体写入文件。
- 感受学生管理系统代码实现的过程。
二、技术及其使用
1.指针的定义
int c = 10;
int *a = &c;
int *a;
float *d = NULL;NULL指向内存的起始地址 0x00
2.动态分配内存
(1)分配内存并判断是否成功:
char *pName = malloc(3 * sizeof(char));
//判断分配是否成功
if(pName == NULL){
//分配失败
exit(EXIT_FAILURE);
}
(2)继续分配:
pName = realloc(pName, 4*sizeof(char));
(3)释放自己分配的内存:
free(pName);
3.声明一种结构体
struct Student {
char name[10];
int num;
int age;
};
4.mode 文件的操作模式
r 只读 文件不存在就报错 从头开始读
w 只写 文件不存在就创建 从头开始写
a 只写 从末尾开始写
r+ w+ a+ 可读可写
5.写入数据
FILE *fp;
fopen_s(&fp, "路径", "w");
fputs("abc",fp);
6.将结构体写入文件中
(1)写入:
struct Student xw1 = {"xiaowang", 20};
fwrite(&xw1, sizeof(struct Student), 1, fp);
(2)读取数据:
struct Student xw1;
fread(&xw1, sizeof(struct Student), 1, fp);
printf("name: %s\n", xw1.name);
printf("age: %d\n", xw1.age);
(3)关闭文件:
fclose(fp);
三、心得体会
今天是学习C语言的最后一天,作为一个基础不太行的人来说,这几天我学到的东西比以前一个学期学到的还要多,毕竟以前上课写的一些代码太简单了而且没有什么结构可言,自己课后也不愿多练所以忘的很快。但现在不同了,因为自己知道该怎么去实现想要的功能,并且代码结果也变得清晰起来不再是杂乱无章的了,更重要的是每天的简书也是一次梳理过程。