- 论坛徽章:
- 0
|
看见很多人讨论字符串的问题,我也来啰嗦一下我的想法。
char ch[5];
...
ch[4]='\0';
...
很多人认为上面这一行是很傻的代码。为什么要加入这一行呢。
编写程序是为了控制电脑,你要控制电脑,你就要给他一个明确的指令,在很多语言中有字符串string这个类型,他是类库来实现的。为什么这么说呢。int,char等等,这些类型就是告诉电脑一个明确的指令,他们的长度是固定的(在软硬件确定的情况下),但是字符串是变长的,不知道他的具体长度,没有明确的指令,它就不知道怎么做了,要知道我们所有的指令都是在明确的存储空间中,字符串是变长的,那么怎么给他分配存储空间呢,不知道则么分配,那么电脑就不知道怎么工作了,我们加上这一行实际上是明确地指出字符串的有效长度,由字符ch[0]开始,到遇上'\0'为止,这一段就是一个字符串的有效长度。
认为上面代码有些傻的,从另一方面来看也是很自然的,因为平时可以直接使用字符串这种类型的变量,只不过这种东西的背后有类库帮你做了很多事情。就像今天我们编写好了源代码,编译好后就能在电脑上运行了。实际上很多工具在背后做了很多事情,比如链接器,装载器等等,这样不是说我们写代码要从头开始写这些工具,但是要知道我们写的这些代码最终是怎么跑起来的。最起码应该知道一个大概吧。
一个朋友公司招人,应聘的人说自己做了很多项目,问他一个基本的问题,有没有自己写过链表,他说没有,也不用,stl里面什么都有。问他什么地方应该使用链表呢,他说平时基本上不用这个东西,我无言。 |
|