在C#中,我可以这样做:
char[] a = new char[] {'a', 'a', 'a'};
但是我能在C++中做类似的事情吗? 我尝试了:
char *a = new char [] {'a', 'a', 'a'};
但它无法编译。
char[] a = new char[] {'a', 'a', 'a'};
但是我能在C++中做类似的事情吗? 我尝试了:
char *a = new char [] {'a', 'a', 'a'};
但它无法编译。
char a[] = {'a', 'a', 'a'};
std::vector
。std::vector
的初始化器中添加一些东西是很好的,比如“如果你很幸运拥有支持c++11的编译器,那么你可以这样做。” - Anton Kovalenko这是C++规范中的一个缺陷(它不允许这种简单的结构编译)。你需要提供大小。
char *a = new char [3] {'a', 'a', 'a'};
char *a = new (char[]){'a', 'a', 'a'};
虽然明确的意图并不是这样,但有些规则在解释上可能禁止这种情况发生(new
段落中的一些规则可以被解释为禁止它)。
new
关键字。可以使用堆栈或容器代替。 - Inverse在C++中,您可能不想使用数组,而应该使用std::vector
。
您甚至可以将其初始化为3个“a”。
std::vector<char> vectorOfChars(3, 'a');
std::vector<char> vectorOfChars{'a', 'a', 'a'};
我认为您需要的是这个:
const char a[] = {'a', 'a', 'a'};
string a = "aaa"; a[0] , a[1] ..etc 如果你想要创建二维字符串数组等,这将会更加容易。
char a[] = {'a', 'a', 'a'};
。简单多了! - Bo Perssonchar *a = new char [3] {'a', 'a', 'a'};
- jrok