我试图看看为什么下面的代码不起作用:
void test2() {
char ulu[256];
ulu[]{ "Hello","Hello" };
}
但是这段代码有效:
struct my_test
{
char test_array[256];
};
void test() {
my_test test_array[]{ "hello", "hello" };
printf("%s", test_array);
}
我希望这两个代码都会失败,但是只有第一个会失败
有人可以向我解释为什么在声明和初始化变量test_array作为my_test类的对象时起作用吗?
我收到一个错误说明:
a value of type "const char *" cannot be used to initialize an entity of type "char"
先谢谢您的帮助!
有人可以向我解释为什么在声明和初始化变量test_array作为my_test类的对象时起作用吗?
char ulu[256];
ulu[]{ "Hello","Hello" };
这不是正确的语法。
您想要的是这样的:
char ulu[][256] {
"Hello",
"Hello"
};
for (auto const& i : ulu)
std::cout << i << '\n';
输出:
Hello Hello
一种更现代的方法将使用std::vector
或std::array
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句