Arrays 无法初始化字符数组
我正在试图了解以下代码不起作用的原因:Arrays 无法初始化字符数组,arrays,c++11,char,Arrays,C++11,Char,我正在试图了解以下代码不起作用的原因: 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); } 我希望两个代码都会失败
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_数组作为my_测试类的对象时它会起作用吗
我收到一个错误声明:
a value of type "const char *" cannot be used to initialize an entity of type "char"
提前感谢您的帮助 由于test()使用,因此编译正确。
test2()似乎在执行赋值。赋值时不能使用统一初始化。因为test()使用统一初始化,所以编译正确。
test2()似乎在执行赋值。分配时不能使用统一初始化
有人能解释一下为什么它在声明和初始化时有效吗
变量test_数组作为my_测试类的对象
这不是正确的语法
你想要的是这样的:
char ulu[][256] {
"Hello",
"Hello"
};
for (auto const& i : ulu)
std::cout << i << '\n';
更现代的方法是使用std::vector
或std::array
有人能解释一下为什么它在声明和初始化时有效吗
变量test_数组作为my_测试类的对象
这不是正确的语法
你想要的是这样的:
char ulu[][256] {
"Hello",
"Hello"
};
for (auto const& i : ulu)
std::cout << i << '\n';
一种更现代的方法是使用
std::vector
或std::array
也许您想要charulu[][256]={“Hello”,“Hello”}代码>?也许你想要字符[][256]={“你好”,“你好”}代码>?
Hello
Hello