第三次作业
1.笔记
2.视频代码列表
3.存在的问题
1)shell到底是个啥?
shell语言的本质“Shell是Linux/Unix的一个外壳,你理解成衣服也行。它负责外界与Linux内核的交互,接收用户或其他应用程序的命令,然后把这些命令转化成内核能理解的语言,传给内核,内核是真正干活的,干完之后再把结果返回用户或应用程序”----池建强著.“MacTalk·人生元编程”。我个人理解就是,它相当于一个中介,用于联系真正工作的内核和用户或应用程序的命令。
2)字符串比较( PTA 1-2 2-3)
1>比较字符串并不在乎两个字符串的长度,而是逐个比较两个字符串中的字符的ASCII值,若相等则继续比较,否则返回两个字符ASCII值的差。
2>两个字符串不会相等,因为它们保存在不同的地址,只有字符串的值才会相等。
3>不能使用关系运算符“==”来比较两个字符串,只能用strcmp() 函数来处理。(strcmp是比较两个字符串的大小,两个字符串相同时返回0,第一个字符串大于第二个字符串时返回一个正值,否则返回负值.)
3)字符数组赋值( PTA 2-1)
例:
char a[10];
1>定义的时候直接用字符串赋值
char a[10]=”hello”;
不能先定义再给它赋值,如char a[10]; a[10]=”hello”;这样是错误的!
2>对数组中字符逐个赋值
char a[10]={‘h’,’e’,’l’,’l’,’o’};
3>利用strcpy
char a[10]; strcpy(a, “hello”);
易错情况:
1>char a[10]; a[10]=”hello”;//一个字符怎么能容纳一个字符串?况且a[10]也是不存在的!
2>char a[10]; a=”hello”;//这种情况容易出现,a虽然是指针,但是它已经指向在堆栈中分配的10个字符空间,现在这个情况a又指向数据区中的hello常量,这里的指针a出现混乱.