声明类型之前/之后的数组赋值

时间:2018-01-13 12:34:56

标签: c++

在同一行的分配我声明了类型,没有返回任何错误并在以下示例中正确编译:

HttpRequests

但是下面没有编译,因为我们知道,在c ++中不可能进行数组赋值。

#include <iostream>
int main() {
    char c[5] = "Hey!"; 
}

1 个答案:

答案 0 :(得分:2)

初始化和分配之间存在差异。在第二个示例中,您要做的不是初始化,而是分配。但是在C ++中不可能对数组赋值。

当您声明数组时,您只能对数组进行多次赋值:

char c[5] = "Hey!"; 

相当于

char c[5] = {'H', 'e', 'y', '!', '\0'};

声明后,您必须单独分配每个值,即

c[0] = 'H';
c[1] = 'e';
c[2] = 'y';
c[3] = '!';
c[4] = '\0';

或者您可以使用STL容器,在这种情况下(字符数组)std::string是合适的:

std::string c;
c = "Hey!;