当前位置:  开发笔记 > 编程语言 > 正文

C++程序员不知道空终止字符串是如何工作的吗?

如何解决《C++程序员不知道空终止字符串是如何工作的吗?》经验,为你挑选了5个好方法。

对于具有1.5年经验的C++程序员来说,有没有办法不知道以空值为终结的字符串作为概念存在并广泛用于各种应用程序?这是否表明他可能是一个糟糕的雇员?



1> dalle..:

对于具有1.5年经验的C++程序员,有没有办法不知道以NULL结尾的字符串作为概念存在并广泛用于各种应用程序?

不,他/她在这些1,5年里做了什么?

这是否表明他可能是一个糟糕的雇员?

是.对于C++程序员来说,C的知识应该是必需的.


@Pax:我认为你混淆了两个不同的想法:(1)避免在C++中尽可能多地使用原始C字符串,因为std :: string更安全,更方便; (2)掌握常见的"坏"技术,因为在维护现有代码时经常需要处理它们.
@Pax:不知道C的坏习惯(以及它们很糟糕的事实)意味着你可能会在C++中犯同样的错误.
@sharptooth,这些都是C++的一部分(真实内存mngmn(new/delete)和reint_cast甚至不存在于C).指针和C一样是C++的一部分.所以我的意思是也要学习所有这些.如果你有std :: string,没有必要学习空术字符串.

2> dirkgently..:

std::string只使用了什么?他知道字符串文字吗?他对字符串文字的看法是什么?

如果他是一个糟糕的雇员,那么细节太少无法告诉你,但他听起来比大多数人需要更多的谈话.


1.5岁,如果他们甚至听说过C++,我会感到惊讶,更不用说C.现在Unis是不是在推动Java/Perl/Python/C#?
@ n0rd:虽然c_str()是使用以null结尾的C字符串实现std :: string的一个很好的理由,但它并不意味着它总是以这种方式工作.依赖此类实施细节是不好的做法,因为它们可以在不事先通知的情况下更改.

3> Artyom..:

这是否表明他可能是一个糟糕的雇员?

当然,C++程序员必须了解所有酷STL背后的内容.

不幸的是,市场上有太多不合标准的C++程序员.

BTW:不是NULL终止,而是终止为零.


它们是空终止的,ASCII字符#0是NUL,空字符(参见http://www.asciitable.com/).我很确定大多数文本都将它们称为空终止.

4> RBerteig..:

恕我直言,我希望有能力的程序员有一个基本的好奇心,想知道STL容器之类的东西是如何运作的.我不指望他们必须准备好实施一个,请注意.

但是NUL终止字符串是C和C++的基本数据类型.如果有机会避免使用集装箱的杂乱细节是一种奢侈.您仍然需要了解容器正在为您做什么.



5> Reed Copsey..:

我会说这取决于你想雇用他们的东西,以及他们在你的组织中的目的是什么.

理解C++而不是C(现在很容易做到)的人会属于这种类型.他们可能是一名优秀的员工.但是,我会说这是一个警告,所以根据他们的简历,这将是我书中对他们的一个标记.

但是,如果他们要开展相当简单的项目,并且不需要设计和开发代码库的关键部分(至少在早期),它们可能没问题.

但是,我不会雇用某人来设计或在不了解像这样的基本概念的关键系统上工作.我聘请的任何高级C++项目的开发人员都需要了解内存管理,C和C++的基本概念,模板和泛型编程,以及所有基本原理,至少在合理程度上,他们的语言是什么将使用.

不了解字符串文字如何工作的概念将是一个很大的缺点 - 即使他们将使用std :: string之类的东西,我希望他们理解它是如何工作的,至少在某种程度上,以及其他选项在那里.理解这些概念有助于理解更新,更好的技术背后的基本原理,同时也理解使用它们时所做的妥协.它还有助于理解在那里做出的设计决策,并将它们应用到您自己的项目中.

推荐阅读
echo7111436
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有