《C Prime Plus》知识点记录P4

Page 4

前言

最近看了《C Prime Plus》第六版。感觉这本是写真的不错,说起来我一个计算机的学生现在才开始这本书实在是有点慢了,虽然学校在大一上的时候教过这门课,但是和这本书的内容相比简直就是弱爆了。在看这本书的时候,我会把一些比较容易忘记的知识点记下来,但是想想可能也有很多的小白和我有一样的问题,所以干脆就写这一系列的博客,一方面方便我回顾,另一方面可以帮助有同样问题的小白。
我把书中的代码和课后习题放在了自己的github里面了,地址是
https://github.com/alon-han/CPrimePlus-code
欢迎大家点个star给我


提示:知识点的形式比较零散,如果想看比较连贯的知识点还是需要去书的。

内容

1、指向void的指针

void * p仅仅表示p存放了一个地址,如果将其递增,则以一个字节为单位;这种类型的指针相当于一个通用类型的指针,使用这种指针的好处是可以将其强制转化并且复制为其他指针

2、程序的内存

  • 静态变量内存:静态内存变量的数量在编译是确认,随着程序一起载入内存
  • 自动变量
  • 动态内存分配:动态内存分配的变量只会增加,除非使用free()函数释放

文件部分

1、三个标准文件

C程序会自动打开三个文件:标准输入文件、标准输出文件、标准错误输出文件

2、exit() 和 return

在最初调用的main()函数中exit()和return效果相同;但是当main()在一个递归中,使用exit()任然会结束程序,而return只会把控制权交给上一级递归;即便在其他函数中exit()也会结束整个程序

3、二进制数据/文本数据

  • 一个文件中的二进制码被解释为ASCII码——文本数据(使用的函数为为fscanf\getc\fget…)
  • 一个文件中的部分二进制码被解释为数值——二进制文件(使用的函数为fread/fwrite)

4、标准I/0的机理

  • step1:调用fopen()函数打开文件

该函数不仅打开文件,而且创建了一个缓冲区,以及一个包含文件和缓冲区的结构FILE;并且返回一个指向该结构的指针

  • step2:调用文件输入函数(fscanf\getc\fgets…)

一旦调用这些函数,文件中与缓冲区大小相同的一块数据拷贝到缓冲区中。输入函数按照要求从缓冲区读取数据,并将文件指示器指向下一块区域。当缓冲区字符读完是,请求拷贝下一份数据块,直到文件结尾

输出同理

5、关闭文件

如果一致尝试打开文件,而不关闭他们(fclose),那么,进程会用完可用的文件句柄/描述符,并且在尝试打开更多的文件时会失败。程序退出后,操作系统会关闭所有程序打开的文件,并且执行其他必要的清楚操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值