第三次作业
1.观看视频的自学笔记
2.敲打的代码列表
3.存在的问题及解决
(1)int*a = (int*)malloc(n*sizeof(int)); 什么意思?
(2)free(p)不可以,为什么free(NULL)可以?
已解决:0不可能是一个有效的地址。
(3)shell的作用
已解决:它交互式解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令。
shell遇到ctrlc 关闭程序,shell遇到ctrld输出EOF。
(4)为什么sec有\0,ds+没有\0?
未解决
4.pta中存在的问题及解决
(1)2-1的c选项不太懂。
已解决:字符串常量是存放在只读数据段的,所以不可更改,str="string"; "string"事实上只是这个字符串常量的首地址,这句的意思就时把str指向这个字符串常量的首地址,所以你是将一个地址赋值给一个指针,但是因为str指向的地址变成了存放于只读数据段中的常数,所以*str是不可赋值的。
(2)\0什么时候有,什么时候没有?
已解决:‘\0'是字符数组里的结束标志,库中的strcpy在复制完字符串时加上了'\0'结束符,所以不须要再添加。而如果是对字符数组操作时就要加,比如把A串的字符复制给B,B[i++] = A[j++];复制完最后一个时你就要加上'\0'。B[i]=0;/B[i] = '\0';