C语言怎么给结构体里的结构体赋值?

结构体里还有一个结构体,怎么给其赋值?格式是怎么样的
2024-12-02 22:05:07
推荐回答(5个)
回答1:

c里面是不能这样赋值的, 这种方式只有在定义的时候初始化才可以
如果 int a[][2] = { 2,2}这是正确的,但是定义数组之后再 a = { 2,2}是不正确的, 你还是一个一个赋值吧. 另外说明一下吧, 定义的时候是给变量申请内存, 编译器会把你初始话的值赋值到内存, 但是如果 以后在赋值的时候, 就成了指针了, 语法就不正确了
m1->edges=
{
{0,1,0,0},
{1,0,1,0},
{0,1,0,1},
{0,0,1,0}
};

------
你可以把你要初始话的这个数组定义个const数组, 后面再用for来赋值吧, 没有其他办法
{
{0,1,0,0},
{1,0,1,0},
{0,1,0,1},
{0,0,1,0}
};

回答2:

用成员符号.阿
比如
struct date
{
int month;
int day;
int year;
};
struct student
{
char name[20];
struct date birthday;
}student1;
那么你想给student1的生日里的year赋值的话
student1.birthday.year=1987;

回答3:

typedef struct _BOOK_INFO
{
int nType;
}BookInfo;

赋值如下:

BookInfo bookinfo;
bookinfo.nType = 1;

如果满意的话,请给点分吧, 我严重缺分啊。 呵呵

回答4:

结构体赋值应该不结构体中的所有项都赋过去例如:
struct Node
{
int data;
struct Node *next;
}
Node s1,s2;
如果将s2的值付给s1则:
s1->data=s2->data;
s1->next=s2->next;
这样才叫结构体的赋值。
每一部分都要赋值

回答5:

如果弄的是结构数组,那就给学好设置为负数表示无效记录就可以了啊,循环的时候加上一个判断,如果是链表或者树,可以直接删除的,
呵呵,不知道问的是不是这个意思

array[ i ].data = xxx;这样可以吗?

array[ i ]需要改变的结构
array[ i ].data 该结构的元素
xxx新的值
不知道是不是这个意思,呵呵,如果用vc就应该没问题啊