C++的结构体

来源:百度知道 编辑:UC知道 时间:2024/06/08 21:08:31
先定义一个结构体:
struct user
{
char username[20];
char pwd[12];
};

然后用user 定义一个变量:
user sbody={"LiuYong","123456"}; //OK,编译通过

但是这样:
user sbody;
sbody={"LiuYong","123456"}; //就是编译不通过????

说明你还没分清啥叫变量声明,啥叫赋值,以及变量的初始化。
user sbody={"LiuYong","123456"};这个能通过,是因为定义变量的时候可以为其初始化,所以是可以滴;
而user sbody;
sbody={"LiuYong","123456"}; 这个通不过,是因为赋值错误。而应该这样:
user sbody;
strcpy(sbody.username,"LiuYong");
strcpy(sbody.pwd,"123456");

你还有很长的路。。。。

前者之所以正确是因为定义变量的时候可以进行初始化。
后者之所以错误是因为结构体或者数组变量不可进行整体赋值,而且对字符数组赋值时还需要使用strcpy函数。
user sbody;
strcpy(sbody.username, "LiuYong");
strcpy(sbody.pwd, "123456");

路过……可能是指定了声明必须初始化吧……

这样的语法,只能用在定义时初始化的情况。