永发信息网

c中的结构体能出现这样奇怪的情况

答案:3  悬赏:0  手机版
解决时间 2021-05-07 17:39
  • 提问者网友:轻浮
  • 2021-05-07 12:13

例如

struct M

{

int x;

int y;

};

struct M tt[2];

struct M tt[2]=

{

{1,2},

{3,4}

};

......

这样的情况在编译的时候能通过.有哪位高手能帮忙解释一下.

最佳答案
  • 五星知识达人网友:山河有幸埋战骨
  • 2021-05-07 13:27
能通过吗?
tt重复定义了,直接

struct M tt[2]=

{

{1,2},

{3,4}

};

就行了


struct M

{

int x;

int y;

};

//struct M tt[2]; 去掉这句

struct M tt[2]=

{

{1,2},

{3,4}

};


全部回答
  • 1楼网友:持酒劝斜阳
  • 2021-05-07 14:34

应该是重定义了,

你能编绎通过,因为编绎只是检查语法错误。还得看你用的什么编辑工具。有些是有漏洞的。

运行应该会出错吧。

  • 2楼网友:刀戟声无边
  • 2021-05-07 14:03

struct M

{

int x;

int y;

};

这一句是在声明结构体 结构体的名字叫M成员里有两个int x和y

struct M tt[2]=

{

{1,2},

{3,4}

};

这一句就是定义一个结构体M类型的 数组tt里面有两个元素

分别为两个M赋值 tt[0]里 x是1 y是2 tt[1]里 x是3 y是4

至于中间那行要去掉 要不就是重定义了

编译不过的

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯