c语言中 结构体中有二维数组怎样赋初值

structstar{charname[8];charinformation[2][2];}mx;能不能根据上面的举个例子。帮帮小弟,谢谢各位。是mx[2];... struct star

{
char name[8];
char information[2][2];
}mx;
能不能根据上面的举个例子。帮帮小弟,谢谢各位。
是mx[2];
展开
 我来答
百度网友0d685c6
推荐于2018-02-28 · 知道合伙人数码行家
百度网友0d685c6
知道合伙人数码行家
采纳数:3348 获赞数:6283
毕业于中北大学测控技术与仪器专业,本科学位。从事编程3年,擅长电脑的问题,LTE的问题。

向TA提问 私信TA
展开全部
最基本的方法就是:
mx[0].name[0] = x;
mx[0].information[0][0] = x;
以此类推 ……
数组不能整体直接赋值,以下情况除外:
1. 初始化时赋值:
typedef struct star
{
char name[8];
char information[2][2];
}MX;

MX mx[2] = {{"zhang",
{{'a','a'},
{'b','b'}}},//为了你能看清楚mx[0]分了三行,此处之前是mx[0],下面是mx[1]
{"lisi", {{'c','c'},{'d','d'}}}};

2. 把数组放在结构里,两个结构可以直接赋值。
3. memcpy等方法。
需要注意几点,
你的name是个字节,所以如果name的大括号里用“zhangsan”,会踩内存,初学者常犯的错误,因为这种赋值隐含了"\0",字符串的截止符,换句话说你赋值zhangsan是8个BYTE+“\0”,这样就超过name[8]了。
你可以尝试指针×pName;
百度网友944409324
推荐于2016-04-05 · TA获得超过107个赞
知道答主
回答量:127
采纳率:0%
帮助的人:34.4万
展开全部

最基本的方法就是:

mx[0].name[0] = x;

mx[0].information[0][0] = x;

以此类推 ……

数组不能整体直接赋值,以下情况除外:

1. 初始化时赋值:

typedef struct star

{

   char name[8];

   char information[2][2];

}MX;


MX mx[2] = {{"zhang", 

                    {{'a','a'},

                    {'b','b'}}},//为了你能看清楚mx[0]分了三行,此处之前是mx[0],下面是mx[1]

                    {"lisi", {{'c','c'},{'d','d'}}}};


2. 把数组放在结构里,两个结构可以直接赋值。

3. memcpy等方法。

需要注意几点, 

  1. 你的name是个字节,所以如果name的大括号里用“zhangsan”,会踩内存,初学者常犯的错误,因为这种赋值隐含了"\0",字符串的截止符,换句话说你赋值zhangsan是8个BYTE+“\0”,这样就超过name[8]了。

  2. 你可以尝试指针×pName;

希望对你有所帮助。

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cqpcy
2013-08-03 · TA获得超过658个赞
知道小有建树答主
回答量:746
采纳率:66%
帮助的人:360万
展开全部
struct star

{
char name[8];
char information[2][2];
}mx={
"zhangsan",'a','b','c','d',
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
li615737290
2013-08-03
知道答主
回答量:36
采纳率:0%
帮助的人:14.2万
展开全部
struct star
{
char name[8];
char information[2][2];
}
mx={ "abcdefg",{{'a','b'},{'c','d'}}};
追问
如果是mx[2]呢?
追答
mx [2],应该是单纯的指数组的一列。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chr1999
2013-08-03 · TA获得超过1056个赞
知道小有建树答主
回答量:2462
采纳率:0%
帮助的人:1232万
展开全部
{
{"aa", {{'a','a'},{'b','d'}},
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式