【发布时间】:2019-09-07 17:47:50
【问题描述】:
假设一个函数有一个const char* 类型的参数。当我在调用该函数时使用字符串时,没有任何问题!我希望您只能输入 ASCII 中包含的字符,例如 c 或 dec 68,但似乎并非如此。看看下面的代码...
void InitFunction(const char* initString)
{
std::cout << initString;
}
int main()
{
InitFunction("Hello!");
}
当您运行代码时,不会出现任何问题、警告或错误。从以下内容可以看出,我对此进行了更多测试...
void InitFunction(char initString)
{
std::cout << initString;
}
int main()
{
InitFunction("Hello!"); // compiler error on this line
}
由于无法将Hello! 转换为char,因此编译时出错。我尝试了另一个测试,但使用const char 作为函数参数类型。代码仍然编译错误。但是当我将* 添加到函数参数类型时,一切都编译得很好!在我看来,const 也是必要的。
根据我对指针的理解,该函数要求一个指针,并且该指针被标识为一个字符。但这给我带来了三个问题。
首先,
Hello!不是指针的形式。我希望至少必须使用引用运算符 (&)。其次,
Hello!不是char类型。第三,为什么我们需要包含
const?
我在这里遗漏了什么吗?指针和字符是否以我不知道的方式工作?
【问题讨论】:
-
你在用哪本书来学习 C++?
-
你怎么知道的?萨姆斯自学。这实际上很容易理解,但我只是卡在这部分。
-
“我怎么知道”是什么意思? Here are the books we recommend.
标签: c++ parameters