C++ 字符数组+共同体问题

来源:百度知道 编辑:UC知道 时间:2024/06/25 18:14:17
谭浩强的C++中说“可以用字符串常量来初始化字符数组”
为什么给共同体的成员这样赋值不可以
#include <iostream>
#include <string.h>
using namespace std;

union fac
{
int w_pnum;
char position[10];
};

void main()
{
union fac leader;

leader.position[]={ "director"};
cout<<leader.position<<endl;

}
这种方法我知道了,我想知道为什么我的方法不可以

明白了,这样就可以了
#include <iostream>
#include <string.h>
using namespace std;

union fac
{
char position[10];
int w_pnum;
}leader={"director"};

void main()
{
cout<<leader.position<<endl;
}

你这是赋值,不是初始化。
虽然,初始化也是赋值操作,我们的思维理解。
但是,在编译器看来可是不一样。

error C2440: “=”: 无法从“const char [9]”转换为“char [10]

你什么都知道 还问什么

我都忘记
char c[10]={"director"}; 这样是对的错的了。C++ 真是严谨呀 要全个数全匹配才对呀