
c语言理解与练习
文章平均质量分 55
青山是哪个青山
这个作者很懒,什么都没留下…
展开
-
程序环境和define的基本用法(C语言版)
这里用括号括起来的意义在于宏只算完成替换,并不是真正意义上的函数,例如当你计算SQUARE(6+1)时,不加括号的结果是6+1*6+1,并不是7*7。test.s文件进入汇编阶段,把汇编代码转换成二进制指令,并形成符号表,符号表是为了在链接阶段能够跨文件进行函数的查找,并生成test.o文件。test.i文件进入编译阶段,把C语言代码转换成汇编代码,然后进行语法分析,词法分析,符号分析以及语义分析等,并转换成test.s文件。此时#加其中一个未知数,可以直接表示变换的值或者符号等,而不是一个固定的值。...原创 2022-07-25 20:50:07 · 491 阅读 · 0 评论 -
浅析C语言文件操作 fopen fclose
每个被使用的文件都在内存中开辟了一个相应的文件信息区,用来存放文件的相关信息(如文件的名字,状态和位置等)。创建一个文件指针,这个指针就可以指向文件所在的位置并且访问。feof仅仅是用来判断文件是因为读取失败结束还是因为遇到文件尾结束,而不是遇到EOF。程序结束时必须关闭文件,否则打开文件所开辟的文件信息区会占用内存,内存并非无限的。3.1根据文件指针的位置和偏移量来定位文件指针fseek。3.3让文件指针的位置回到文件的起始位置rewind。2.1字符输入/输出函数fgetc/fputc。...原创 2022-07-17 16:42:19 · 1100 阅读 · 0 评论 -
常见的动态内存错误
可以看出,当对p进行初始化的时候,p的地址已经发生改变。所以当再次打印p的时候,打印的并不是初始化的值。此时指针已经丢失了动态开辟空间的地址,尽管对他进行释放,但是动态开辟的空间仍然存在,并没有归还给系统,会造成空间的浪费。由于一般的变量与数组等都存在于内存的栈区,而free是对堆区的动态开辟空间进行释放,因此造成了报错。当第一次的释放时空间已经不存在,p只留下了一个地址,所以当第二次进行释放时,会出现报错。内存泄漏问题已经在前一篇文中讲过,所以当动态开辟空间完后一定要使用free进行释放。...原创 2022-07-14 20:26:01 · 161 阅读 · 0 评论