C语言给结构体赋值

2,146 阅读1分钟
struct Test {
	int a;
	int j[10];
	char b;
	char d[10];
	wchar_t e;
	wchar_t f[10];
}t1, t2[10];

int main() {
	t1.a = 1;
	t1.b = 'b';
	strcpy(t1.d, "dddd");
	
	// 下面是错误的
	// char str[10] = "aaaa";
	// t1.d = str
	
	t1.e = 'e';
	
	wcscpy_s(t1.f, sizeof(t1.f),L"fff");
	
	printf("%d  \n", t1.a);
	printf("%c  \n", t1.b);
	printf("%s  \n", t1.d);
	printf("%c  \n", t1.e);
	printf("%ls  \n", t1.f);
	
	t1.j[0] = 2;
	printf("%d  \n", t1.j[0]);
	return 0;
}

字符串就是字符数组,数组可以说跟指针一样,指针只能指向,不能赋值,,所以直接用等于号赋值是错误的,除非刚定义时就初始化。 char是AllSC(多字节),wchar_t是Unicode,在赋值时都一样。