发布网友
共5个回答
热心网友
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}
};
热心网友
结构体赋值应该不结构体中的所有项都赋过去例如:
struct
Node
{
int
data;
struct
Node
*next;
}
Node
s1,s2;
如果将s2的值付给s1则:
s1->data=s2->data;
s1->next=s2->next;
这样才叫结构体的赋值。
每一部分都要赋值
热心网友
s1
=
s2
放编译器试试就知道是可以的
typedef
struct
A
{
int
n;
char
c;
}A;
void
main()
{
A
s1,
s2;
s1.n
=
1;
s1.c
=
'c';
s2
=
s1;
printf("%d
%c\n",
s2.n,
s2.c);
}
打印:
1
c
结构体不是指针,但可以设置一个指向结构体的指针,如A*
p;
热心网友
对于结构体的变量可以像你那样直接赋值
s1
=s2
对于结构体的指针是这样表示的
struct
structa
*s1;
仍有问题请追问
热心网友
100分都不会有人帮你做。除非有vc平台 帮你验证下