【发布时间】:2013-12-24 17:17:31
【问题描述】:
我正在学习物理学,在我们的编程课程的讲义中写到一个字符常量,在 C 中具有类型 char,其中字符常量是指像 ' 这样的表达式x'。 在问我的讲师这是否是一个错误之后,他说没有。在向他展示了 C90、C99 和 C11 之后,其中清楚地写了一个字符常量的类型为 int,他仍然没有说这是一个错误。
所以在再次问他之前,我想向自己保证我的方法是正确的,以及为什么会这样,因为这似乎是在浪费记忆。 我发现为什么会这样,是因为历史原因,这是相当模糊的。 另外我想知道为什么在 C++ 中,他们将字符常量的类型更改为 char。
编辑:非常感谢您的回答。
【问题讨论】:
-
链接的问题回答了 C 和 C++ 的原因。 C 标准回答了“技术”部分 - 是的,
'x'在 C 中属于int,在 C++ 中属于char。 -
x(也是)一个字符文字,这可能有助于克服由措辞歧义引起的假设矛盾。 -
他如何证明他的断言是正确的,而 ISO C 标准的所有三个版本都是错误的?
-
@KeithThompson:遵守标准是自愿的;标准机构对讲师没有法律、道德或专业管辖权,也没有“C”这个名字的商标或其他所有权利益。 :-)
标签: c types character constants