为什么我不能用字符串
初始化本地数组答案 0 :(得分:7)
为什么我不能用字符串
初始化本地数组
正确答案是,您可以 - 对于给定的数组定义和字符串。你究竟想要实现什么目标?
char str[] = "Hello world";
答案 1 :(得分:4)
这个问题在细节上非常紧张,但是:
char arr[] = {'a','b','c', 0};
或
char arr[] = "string";
修改强>:
回答问题:
char s1[] = "hi";
char s2[] = {'h','i',0};
memcpy(s1, "by", sizeof(s1));
memcpy(s2, "by", sizeof(s2));
cout << ios::hex << &s1 << endl;
cout << ios::hex << &s2 << endl;
cout << s1 << endl;
cout << s2 << endl;
打印:
80xbfffed72
80xbfffed6f
by
by
至少在我的系统上看起来两者都分配在相同的内存空间中,我没有看到任何问题或差异。例如,C将string
定义为空终止的char数组 - 我相信这在C ++中是相同的,不要与std::string
混淆。
答案 2 :(得分:1)
std::vector<std::string> abc(5,"abc");
将创建一个向量,其中5个元素初始化为“abc”。