有没有help讲解一下这段代码🙏

img


信息系统
/
void save(int m) /保存文件函数/
{
​int i;
​FILE* fp;
​fp = fopen("D:\stud.txt", "wb");
​l

i 是数组 em 当前的下标
m 是数组 em 的最大长度

这就是简单的文件读写函数啊,哪里有疑问?
fopen打开文件,wb表示二进制写方式打开;rb表示二进制读方式打开
fwrite和fread分别写入和读取一个学生的信息

看代码,要一步一步来,不要上看下看左看右看,那肯定晕呀
先找到main函数,这是整个工程的入口
顺着main函数看,看看先调用哪个,后调用哪个,调用哪个函数就看哪个
看每个子函数的时候,一句一句看,哪句看不懂就上网查,把每一句都看懂,每个参数什么意思都搞清楚
如果你真的都搞清楚了,那么整个是什么意思也就清楚了
你不去追究细节,光想听别人大概给你总结一下,你感觉好像是会了,再给你换一段代码稍微改点东西你还是不会
-=-=-=
大概意思是这样:
这段代码定义了两个函数,load用来读文件,读到em这个全局变量数组里面
save用来写文件,将em里的数据写入文件里
具体还是需要你仔细看

什么语言的代码

结构体和文件的读写

  • 你可以看下这个问题的回答https://ask.csdn.net/questions/7785593
  • 这篇博客也不错, 你可以看下全排列算法所有实现方式
  • 除此之外, 这篇博客: 浮点型如何在内存中进行存储呢?中的 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • int main()
    {
     int n = 9;
     float *pFloat = (float *)&n;
     printf("n的值为:%d\n",n);
     printf("*pFloat的值为:%f\n",*pFloat);
     *pFloat = 9.0;
     printf("num的值为:%d\n",n);
     printf("*pFloat的值为:%f\n",*pFloat);
     return 0; }

    首先,观察上述代码,应该注意几个地方:

    float *pFloat = (float *)&n;

    我们取出整型变量n的地址,强制类型转化为float*的类型,这里只是把类型转化了,该地址的值是没有发生变化的,然后再存到float*类型的pFloat指针变量中,我们知道,地址或指针所占

    内存空间的大小,只和平台有关,如果平台是32位的,那么,所占内存空间大小就应该是4byte,如果是64位平台,所占内存空间的大小应该是8byte,和地址或指针的类型是没有关系

    ,,也就是说,我们是可以把一个整型地址放在一个float类型的指针变量里面去的,一般,我们常使用的平台都是32位平台,他们都占4byte,,所以,是能够放得进去的,在本句代码

    里,即使不强制类型转换为float*类型, 也是可以的,,只不过是,类型不匹配,&n的类型应该是int*,放在float*类型中会报警告,但是,是有能力存进去的,运行结果也是正确的,为了

    消除警告,我们常常先把类型统一,然后再存放进去;

  • 您还可以看一下 吴刚老师的【吴刚大讲堂】电商品牌文案设计方法课程中的 字体选择案例应用小节, 巩固相关知识点