当前位置: 代码迷 >> C语言 >> 复值问题
  详细解决方案

复值问题

热度:400   发布时间:2006-09-28 18:30:20.0
复值问题

struct
{
int a[2];
int node;
}lco;

lco.a[2]={5,8};
lco.node=2;
int main()
{
....
}

lco.a[2]={5,8};
lco.node=2;
我在WINTC,98中这两句话为什么出错了?错在那。那个帮看看
如果把这两句话放在main里
为什么lco.a[2]={5,8};出错。
而lco.node=2;是正确的?


----------------解决方案--------------------------------------------------------
在编贪蛇蛇时
我定义了一个结构
#define N 200
struct
{
int x[N];
int y[N];
}snake;

在函数里用过
snake.x[0]=150;
snake.y[0]=100;
来定义蛇的起始坐标能成功复值?

----------------解决方案--------------------------------------------------------
以下是引用红梅在2006-9-28 18:30:20的发言:

lco.a[2]={5,8};

在初始化中可以这么写
但是在程序段的时候就不能这么写了

[此贴子已经被作者于2006-9-28 18:43:24编辑过]


----------------解决方案--------------------------------------------------------
那为什么在MAIN()外
lco.node=2;
不能复值。而在MAIN()里又能复值?
----------------解决方案--------------------------------------------------------
这个
你还是自己再把语法看看吧

----------------解决方案--------------------------------------------------------
切实是我学艺不精
谢谢你的回答
回去看书。
----------------解决方案--------------------------------------------------------
以下是引用红梅在2006-9-28 18:42:48的发言:
在编贪蛇蛇时
我定义了一个结构
#define N 200
struct
{
int x[N];
int y[N];
}snake;

在函数里用过
snake.x[0]=150;
snake.y[0]=100;
来定义蛇的起始坐标能成功复值?

这个当然行了,snake.x[0]是数组元素.

lco.a[2] 也是数组元素,可惜越界了.

你写成
lco.a[0]=5;
lco.a[1]=8;不就行了吗

[此贴子已经被作者于2006-9-28 21:00:35编辑过]


----------------解决方案--------------------------------------------------------
以下是引用红梅在2006-9-28 18:30:20的发言:

struct
{
int a[2];
int node;
}lco;

lco.a[2]={5,8};
lco.node=2;
int main()
{
....
}

lco.a[2]={5,8};
lco.node=2;
我在WINTC,98中这两句话为什么出错了?错在那。那个帮看看
如果把这两句话放在main里
为什么lco.a[2]={5,8};出错。
而lco.node=2;是正确的?

结构体名和结构体变量名,楼主是否弄清楚了.结构体初始化时只可以在定义时给它的成员赋初值.
----------------解决方案--------------------------------------------------------

用这个数据结构编写贪吃蛇怕是有点困难:-)


----------------解决方案--------------------------------------------------------

贪吃蛇两周前已经编好了。只是在编俄罗斯方块时定义方块结构时碰到的问题
就编个小程序来试验。。

谢谢各位大侠帮助


----------------解决方案--------------------------------------------------------
  相关解决方案