i 是数组 em 当前的下标
m 是数组 em 的最大长度
这就是简单的文件读写函数啊,哪里有疑问?
fopen打开文件,wb表示二进制写方式打开;rb表示二进制读方式打开
fwrite和fread分别写入和读取一个学生的信息
看代码,要一步一步来,不要上看下看左看右看,那肯定晕呀
先找到main函数,这是整个工程的入口
顺着main函数看,看看先调用哪个,后调用哪个,调用哪个函数就看哪个
看每个子函数的时候,一句一句看,哪句看不懂就上网查,把每一句都看懂,每个参数什么意思都搞清楚
如果你真的都搞清楚了,那么整个是什么意思也就清楚了
你不去追究细节,光想听别人大概给你总结一下,你感觉好像是会了,再给你换一段代码稍微改点东西你还是不会
-=-=-=
大概意思是这样:
这段代码定义了两个函数,load用来读文件,读到em这个全局变量数组里面
save用来写文件,将em里的数据写入文件里
具体还是需要你仔细看
什么语言的代码
结构体和文件的读写
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*类型中会报警告,但是,是有能力存进去的,运行结果也是正确的,为了
消除警告,我们常常先把类型统一,然后再存放进去;