c#语言中结构体如何定义结构体数组?新手求教!

//StructStudent[]stsz=newStructStudent[5];//for(inti=0;i<stsz.Length;i++)//{//stsz[i]... //StructStudent[] stsz = new StructStudent[5];
//for (int i = 0; i < stsz.Length; i++)
//{
// stsz[i] = new StructStudent();
//}
问题一:请解释下以上代码的意思
问题二:结构体如果在创建结构体对象后如不给结构体数组对象实例化会怎么样?
问题三:我要保存N个学生结构体难道一一给他们结构体赋值吗?
我能用这个
//for (int i = 0; i < stsz.Length; i++)
//{
// stsz[i] = new StructStudent();
//} 全部赋值吗?
展开
 我来答
sniper2003
2012-01-09 · TA获得超过1882个赞
知道小有建树答主
回答量:775
采纳率:100%
帮助的人:663万
展开全部
问题1:开辟sizeof(StructStudent)*5个内存空间给数组stsz,并在for循环中使用无参构造方法初始化数组中的所有成员。
问题2:如果不执行循环进行初始化,无任何影响,可正常使用。结构在编译时就已经初始化,所有的成员会用默认值进行初始化,而你问题1中是在运行时初始化的。
问题3:如果要保存N个结构体,则必须逐一赋值。你给出的代码是运行时的初始化,实际在这之前的编译期就已经初始化过了。
shiqi917
2012-01-04 · TA获得超过141个赞
知道小有建树答主
回答量:188
采纳率:0%
帮助的人:153万
展开全部
回答1:这段代码就是实例化一个数组,然后循环数组依次实例化每个item。
回答2:不会怎么样,结构体是值类型,不需要实例化也有默认值。
回答3:结构体的实例化只是调用了一下构造函数而已,如果没有构造函数或者是空的构造函数那么new是没有意义的。所以根本不需要new,可以直接使用。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xh1292010
2012-01-04 · 超过29用户采纳过TA的回答
知道答主
回答量:107
采纳率:0%
帮助的人:60.7万
展开全部
哥们我真不知道怎么回答,只能说好好学习吧,不懂的就多调试一下。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
一抹苍蓝

2012-01-04 · TA获得超过269个赞
知道小有建树答主
回答量:308
采纳率:0%
帮助的人:152万
展开全部
问题1
我不知道你的对不对
但是,大概明白你的意思了

按理说,for循环是没必要的

上面的代码的意思,是StructStudent类的5个对象数组,而你下面的意思是想给他们实例化,但是按理说,最上面的代码已经实例化了。。。=。=
问题2
估计我不太专业吧,我一直在用C#但是我从来没用到结构体,貌似就是关键字的不同,和存放位置不动,我更喜欢类,不如你也这么用。
问题3 和2一个样
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式