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

结构体里还有一个结构体,怎么给其赋值?格式是怎么样的

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}
};
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-04
用成员符号.阿
比如
struct date
{
int month;
int day;
int year;
};
struct student
{
char name[20];
struct date birthday;
}student1;
那么你想给student1的生日里的year赋值的话
student1.birthday.year=1987;本回答被提问者采纳
第2个回答  2010-06-15
typedef struct _BOOK_INFO
{
int nType;
}BookInfo;

赋值如下:

BookInfo bookinfo;
bookinfo.nType = 1;

如果满意的话,请给点分吧, 我严重缺分啊。 呵呵
第3个回答  2011-12-09
结构体赋值应该不结构体中的所有项都赋过去例如:
struct Node
{
int data;
struct Node *next;
}
Node s1,s2;
如果将s2的值付给s1则:
s1->data=s2->data;
s1->next=s2->next;
这样才叫结构体的赋值。
每一部分都要赋值
第4个回答  2010-06-16
如果弄的是结构数组,那就给学好设置为负数表示无效记录就可以了啊,循环的时候加上一个判断,如果是链表或者树,可以直接删除的,
呵呵,不知道问的是不是这个意思

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

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

C语言怎么给结构体里的结构体赋值?
c里面是不能这样赋值的, 这种方式只有在定义的时候初始化才可以 如果 int a[][2] = { 2,2}这是正确的,但是定义数组之后再 a = { 2,2}是不正确的, 你还是一个一个赋值吧. 另外说明一下吧, 定义的时候是给变量申请内存, 编译器会把你初始话的值赋值到内存, 但是如果 以后在赋值的时候,...

C语言中怎么给一个结构体用scanf进行赋值?
结构体数组指针作为函数参数,通过数组的首地址与偏移量对结构体数组进行scanf的赋值,在函数中通过指针间接访问到其指向的内存。举例:编写函数,输入5个学号(int),5个姓名(字符串),5个成绩数组(每组三个成绩)(int[3]),依次调用函数 include <stdio.h> include <stdlib.h> struct student ...

C\/C++编程笔记:C语言结构体想要直接赋值,应该如何实现?
从结果可以看出,C语言中结构体的直接赋值是可行的。我们可以通过查看struct_assign()函数的汇编实现,从底层了解C语言是如何实现两个结构体之间的赋值操作的。这段汇编比较简单,由于结构体的对齐特性,sizeof(struct Foo)为16,通过四次movl操作将foo1的结构体内容拷贝到结构体foo2中。从汇编上可以看出...

C语言 如何在结构体中给嵌套的结构体赋值?
结构体嵌套,赋初值,大括号嵌套就可以了。问题是你代码写错了。你定义的old1不是结构类型,而是结构变量。在shuju中成员要写struct old 变量名;不能写struct old1。下面是演示代码:(补充:如果想定义一个结构类型别名,要用typedef)include <stdio.h> struct old { int year;int month;int day;...

在c语言标准中结构体之间是否可以直接赋值?
在结构体内部,相同类型的变量之间可以相互赋值。例如,你可以将一个结构体变量的成员赋值给另一个结构体变量的相应成员。结构体指针的使用也与普通指针类似,可以指向结构体并访问其成员。然而,当结构体指针带有const修饰符时,指针本身或指向的内容就不能被修改。例如,`struct Per const *p = &p1;`...

C语言结构体数组的定义和赋值
intmain(void){ structstudentsbao={};printf("%d,%s\\n",bao.id,bao.name);\/\/输出是4224528,空(应该是null)\/\/structstudentsbao={3,"123"};可以。第一种赋值方法 \/\/strcpy(bao.name,"bao");\/\/可以,\/\/printf("%d,%s\\n",bao.id,bao.name);\/\/bao.name="bao";错误“stray'\\351'in...

结构体怎么给结构体赋值 c语言
先声明该结构体,如student stu1,stu2;然后stu1.num=stu2.num;

C语言结构体可以用等号赋值吗
在c语言中,结构体与结构体之间 是不能用等号赋值的,只能是对结构体内部成员用等号赋值。在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类。结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。结构体同时也是一些元素的集合,这些元素...

c语言结构体能否整体赋值
可以的,但需要保证是具有相同结构的结构体变量。可以将一个结构体变量的值赋给另一个具有相同结构的结构体变量。如student1和student2都是student类型的变量,可以这样赋值:student1= student2;假设申明了两个成员列表完全一样的两个结构体,编译器会当作两个完全不同的类型,即使他们的成员列表是一样...

C语言 结构体的赋值
你的结构数组a[3] 里用了变量 zhangsan, 语法上是错的。你可以改成:struct student a[3]={ {0}, {1002, 后面照抄。。。};其中 {0} 是给数组元素 a[0] 初始化,充0 占位。声明完毕,语句部分 另加一句赋值语句: a[0]=zhangsan; 就把zhangsan的数据传给a数组的 元素 a[0] ...

相似回答