【发布时间】:2022-11-14 18:57:41
【问题描述】:
我想声明一个字符类型的带指针的数组,数组的长度可以由我输入的字符串确定。
我是这样写的:
char *s;
cout << "Enter a string: " << endl;
cin >> s;
我希望我可以通过cin操作初始化字符串,但是编译时出现错误。该错误是关于“二进制表达式的无效操作数”。
我不知道为什么我写的行是错误的。
我虽然不仅内置 string 类用于声明数组。
C++中的string数据类型不是和“字符数组”一样吗?
char *s这行不是意味着指针s指向一个字符数组(或字符串)吗?
谢谢!
【问题讨论】:
-
为什么不
std::string s; std::cin >> s;? -
指针不是数组。您不能将 100 个字符插入指针。为此使用 std::string 。
-
char* s;将s声明为指针,但它不会使s指向任何地方。如果你想让s指向你必须为此编写的代码,即s = ...。 -
string与字符数组不同。当然s也不是字符数组,它是一个指针,String,数组,指针,所有这些都是不同的。