关于使用字符串数组作为函数参数的问题

Question about using string arrays as function parameters

我是新手,今天遇到了一个小问题,希望得到大神的解答,万分感谢。 代码如下。

#include<iostream>
using namespace std;
void sub(char b[]){
    b[] = "world";    //I alse try b*/b,but it is not ok
}
int main(void){
    char a[10] = "hello";
    sub(a);
    cout<<a<<endl;

    system("pause");
    return 0;
}

错误:']' 标记前需要主表达式 b[] = "世界"; ^ The error

我希望最终输出是“world”。函数 sub() 可以 运行 正确。我该怎么办?

strcpy(b, "world"); // need <string.h>

但我会直接使用 std::string(而不是 c 字符串)。

#include<iostream>
#include<string>
using std::cout;
using std::string;

void sub(string &b){
    b = "world";
}

int main(){
    string a = "hello";
    sub(a);
    cout << a << endl; // output

    system("pause");
    return 0;
}

正如其他人告诉您的那样,它不是 C++ 风格而是 C 风格,我将尝试解释为什么它无法编译。 当你写 b[i] 时,你告诉编译器:“请转到内存位置 b + sizeof(b type) * i”,所以当你写 b[] 时,编译器无法理解你想要什么。