C语言第三次作业
1.3.1和1.3.2
纸质笔记
问题:
1.什么是shell:百度查得,Shell俗称壳(用来区别于核),是指“为使用者提供操作界面”的软件(命令解析器)。它接收用户命令,然后调用相应的应用程序。由此可见shell正如老师所言是一个类似中介的东西。
2.EOF的意思和使用。EOF是是一个宏定义,像NULL一样。根据百度得知,EOF,即End Of File,最常见的是表示结束文件输入。但是在特殊情况下,EOF表示行输出的结束,这种情况是在输入一行字符后,并没有输入换行(回车),在这种情况下,EOF的作用是像换行一样的。
3.在windows下,ctrl+z和ctrl+c的作用。在windows下,ctrl+z代表EOF结束输入,ctrl+c代表关闭程序。
4.char **a的理解不懂。
5.为啥正确的定义一个字符变量要用int而不是用char。
1.2.2
纸质笔记:
问题:
1.malloc函数的作用。是用来申请一片连续的空间。并且以void*来返回分配的内存区域的地址。
2.malloc一定需要free函数来配套吗。通过视频,自身实践和网上搜寻得知,答案是否定的,malloc并不需要free来进行配套,但是需要free来配套。
3.malloc函数申请过多的内存是否会造成电脑卡顿。通过实践得知丰配过多的内存不一定会造成电脑卡顿。通过实践可知,分配内存之后,如果没有东西来占有这些内存,电脑的内存条占有量并不会发生改变。那么可以设想,并且根据老师和网上的资料,在分配的内存全部占据时会造成卡顿。
并且在程序未运行的时候不会造成卡顿。
4.用malloc申请来的最大内存超过自己电脑的最大内存。并未解决。
5.int main(int argc,char const *argv[])这句代码打出来之后后续的操作,和操作所产生的效果,与老师打出代码和操作的效果不同。并且不理解这句代码的意思。
(以上很多内容均为个人的实践加推理猜想,并不一定正确)
1.4字符串的实现
纸质笔记:
问题:
1.
视频中老师一开始敲得代码是这样,但是编译运行之后变为了
这样。
2.视频中老师strcmp函数时,在运用表示时
(注释掉的是视频中的三种情况)
如果换成char s1[]="dab";
char s2[]="abc";
那么所得到的答案并不一样
3.不明白restrict表明两个数组不可以重叠得意思。不明白不可以重叠得意思。
pta作业
单选题的第三题,不明白为啥字符串“That”小于字符串“The”,但是程序显示如此。
程序填空题有很多疑惑。