我是c ++的初学者。以下代码片段取自用于解析文本输入的程序。
const int MAX_CHARS_PER_LINE = 512;
const int MAX_TOKENS_PER_LINE = 20;
const char* const DELIMITER = ",";
我找不到程序员使用原因的原因 const指针 对于变量DELIMITER,因为他没有将const指针用于其他变量。请澄清。
答案 0 :(得分:4)
512
和20
是int
类型的常量。它们的值可以存储在int
类型的对象(变量)中。没有指针。
像","
这样的字符串文字不是简单的标量值。它的类型为const char[2]
,是两个char
的数组。 (const
表示只读。)
尽管数组和指针是非常不同的东西(并且不要让任何人告诉你!),C和C ++中的数组通常通过指向其元素的指针来操作。因此,char*
指针可用于例如遍历字符串并提供对其每个元素的访问。
额外const
表示无法修改指针本身。