这样的自定义类型数组为什么编译会出错

as132699 2010-01-13 07:09:14
#include<iostream.h>
typedef struct jin
{
int a;
}jin1;


void main()
{ jin1 a={0};
jin1 b={3};
jin1 c={6};
jin1 mm[3]={a,b,c};
for (int ll=0; ll<3; ll++)
{
cout<<mm[ll]<<'\n';
}
}


错误:cannot convert from 'struct jin' to 'int'

我明明在声明mm的时候定义为jin1类型 难道数组不支持这样自定义类型吗?
...全文
70 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
路飞-总裁 2010-01-13
  • 打赏
  • 举报
回复
当然出错了,看错误信息啊,类型不匹配啊。
matrixcl 2010-01-13
  • 打赏
  • 举报
回复
4楼正解,自定义类型,而且没重载操作符 <<, cout自然输出不了。


#include <iostream>
typedef struct jin
{
int a;
}jin1;


void main()
{
jin1 a={0};
jin1 b={3};
jin1 c={6};
jin1 mm[3]={a,b,c};
for (int ll=0; ll <3; ll++)
{
cout <<mm[ll].a <<'\n'; /////////
}
}


从楼主这里报的错误来看,楼主的编译器不支持 jin1 mm[3]={a,b,c}; 这种赋初值方式。vs2005
是正常的。
不支持那就改一下呗

jin1 mm[3] = {0, 3, 6};



jin1 mm[3];
mm[0] = a;
mm[1] = b;
mm[2] = c;
as132699 2010-01-13
  • 打赏
  • 举报
回复
我知道了 是不是 自定义结构的数组是不支持这样初始化的
as132699 2010-01-13
  • 打赏
  • 举报
回复
jin1 mm[3]={a,b,c}; 这一行出现的错误 就是cannot convert from 'struct jin' to 'int'
as132699 2010-01-13
  • 打赏
  • 举报
回复
mm[ll] 这里我改了 这边是我大意了

我不懂得是jin1 mm[3]={a,b,c};
这一行
stardust20 2010-01-13
  • 打赏
  • 举报
回复
cout <<mm[ll].a <<'\n';
as132699 2010-01-13
  • 打赏
  • 举报
回复
是这一行 jin1 mm[3]={a,b,c}; 发生错误了
gavinwjin 2010-01-13
  • 打赏
  • 举报
回复
mm[ll]是个对象
sicxun 2010-01-13
  • 打赏
  • 举报
回复
mm[ll].a

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧