C和指针 阅读笔记(11-15章)

malloc和free维护一块内存池(堆)

malloc申请内存返回一块连续内存的指针,如果申请失败,则返回NULL指针。在对申请到的空间使用前要先判断非NULL指针。

calloc申请内存:入参需要 所需元素个数和每个元素的字节数,而且返回内存前会先把内存初始化为0。

free释放内存:入参是申请时返回的内存指针

这种手动申请动态内存的好处是:在运行时才分配内存。(堆栈上的则是在编译时就被分配)

内存泄漏:动态内存申请后,不再使用时未被释放。这块内存会一直占用,直到内存耗尽不得不重启。

 

字符串常量出现在表达式中时,它表示1个指针常量指向第一个字符,因此  “xyz”+ 1 的结果是 y

命令行参数:argc和argv

      argc:整数,参数的数量

      argv:字符指针数组,内部每个指针指向一个命令行参数,以一个NULL指针作为结束标志。

 

条件编译:(如果最终调式完毕,输出最终库,define  DEBUG 0)

#define DEBUG 1

#if   DEBUG

    printf(" 启动DEBUG编译")

#endif

 

#progma  不可移植

 

流stream:  I/O操作中移进移出的字节

读取和写入:从一块称为缓冲区buffer的内存区域来回复制数据;用于输出流的缓冲区只有当被写满时才会被刷新flush(写入)到设备或文件中。

      输入缓冲区为空时从设备或文件读取下一块较大输入,填充缓冲区。

流分两种:文本流text              r          w

     二进制流binary      rb         wb

fopen函数:打开一个特定的文件,并把流和这个文件关联。

      函数执行成功,返回一个结构指针,指向这个新创建的流;执行失败,返回一个NULL指针。

关闭流:fclose ( 创建时的流指针)

函数从流中读取字符:读到末尾,返回EOF常量,代表不再有字符了。

  

posted @ 2020-04-26 17:00  Parallax  阅读(108)  评论(0编辑  收藏  举报