c语言中 结构体中有二维数组怎样赋初值
structstar{charname[8];charinformation[2][2];}mx;能不能根据上面的举个例子。帮帮小弟,谢谢各位。是mx[2];...
struct star
{
char name[8];
char information[2][2];
}mx;
能不能根据上面的举个例子。帮帮小弟,谢谢各位。
是mx[2]; 展开
{
char name[8];
char information[2][2];
}mx;
能不能根据上面的举个例子。帮帮小弟,谢谢各位。
是mx[2]; 展开
6个回答
推荐于2018-02-28 · 知道合伙人数码行家
关注
展开全部
最基本的方法就是:
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;
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;
展开全部
最基本的方法就是:
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;
希望对你有所帮助。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
struct star
{
char name[8];
char information[2][2];
}mx={
"zhangsan",'a','b','c','d',
}
{
char name[8];
char information[2][2];
}mx={
"zhangsan",'a','b','c','d',
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
struct star
{
char name[8];
char information[2][2];
}
mx={ "abcdefg",{{'a','b'},{'c','d'}}};
{
char name[8];
char information[2][2];
}
mx={ "abcdefg",{{'a','b'},{'c','d'}}};
追问
如果是mx[2]呢?
追答
mx [2],应该是单纯的指数组的一列。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
{
{"aa", {{'a','a'},{'b','d'}},
{"aa", {{'a','a'},{'b','d'}},
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询