| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 922 人关注过本帖
标题:结构体的初始化方法
只看楼主 加入收藏
lyhlyhlyhboa
Rank: 2
来 自:西安电子科技大学
等 级:论坛游民
帖 子:60
专家分:23
注 册:2011-1-1
结帖率:100%
收藏
已结贴  问题点数:15 回复次数:22 
结构体的初始化方法
谁能系统讲下结构体初始化的所有方法。。想全面了解下,不管这个方法好不好或是推不推荐,麻烦都说一下,谢谢啦
搜索更多相关主题的帖子: 结构体 系统 
2013-01-12 21:30
信箱有效
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:9
帖 子:1102
专家分:4268
注 册:2012-6-19
收藏
得分:1 
自己总结 然后贴出来 不是更好么
2013-01-12 21:36
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:9 
我知道2个:
Structure s1 = {...};
Structure s1 = s2;
应该也只有这两种了

My life is brilliant
2013-01-12 21:39
lyhlyhlyhboa
Rank: 2
来 自:西安电子科技大学
等 级:论坛游民
帖 子:60
专家分:23
注 册:2011-1-1
收藏
得分:0 
回复 2楼 信箱有效
就是因为不太清楚总结不来才来问的嘛。。

不懈
2013-01-12 22:26
lyhlyhlyhboa
Rank: 2
来 自:西安电子科技大学
等 级:论坛游民
帖 子:60
专家分:23
注 册:2011-1-1
收藏
得分:0 
回复 3楼 lz1091914999
我知道在声明结构体变量的同时进行初始化,如
struct data{
    int x;
    char array[20];
};
struct data b = {
    4,
    "proud"
};
第二种就是在建立结构体声明时同时就进行变量声明并初始化,如
struct data{
    int x;
    char array[20];
} b = {4, "proud"};

然后加上你说的。
还有一种我想问,就是在定义和声明结构体和结构体变量的时候不进行初始化,之后对结构中的元素逐个初始化,如 data.x = 4; 这样行不行?我看书上用类似 scanf("%d", &data[index].x) 这样的语句进行赋值(其中data[ ]是一个结构数组)。我就想,既然结构数组可以这样初始化赋值,那普通的结构体应该也可以吧?求高手讲解。。

[ 本帖最后由 lyhlyhlyhboa 于 2013-1-12 23:02 编辑 ]

不懈
2013-01-12 22:44
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:1 
我晕,,,这不是废话么,


[fly]存在即是合理[/fly]
2013-01-12 23:03
lyhlyhlyhboa
Rank: 2
来 自:西安电子科技大学
等 级:论坛游民
帖 子:60
专家分:23
注 册:2011-1-1
收藏
得分:0 
对于我刚才上面说到的最后一种,我刚才又尝试了一下,单独的 data.x = 4; 是不行的,但是使用scanf( )函数 scanf("%d", &data.x)进行初始化是可以的,同样的对于字符串使用gets( )函数也是可以的。但是这是为什么呢?。求解答阿。。

不懈
2013-01-12 23:08
lyhlyhlyhboa
Rank: 2
来 自:西安电子科技大学
等 级:论坛游民
帖 子:60
专家分:23
注 册:2011-1-1
收藏
得分:0 
对于我刚才上面说到的最后一种,我刚才又尝试了一下,单独的 data.x = 4; 是不行的,但是使用scanf( )函数 scanf("%d", &data.x)进行初始化是可以的,同样的对于字符串使用gets( )函数也是可以的。但是这是为什么呢?。求解答阿。。

不懈
2013-01-12 23:09
lyhlyhlyhboa
Rank: 2
来 自:西安电子科技大学
等 级:论坛游民
帖 子:60
专家分:23
注 册:2011-1-1
收藏
得分:0 
回复 6楼 azzbcc
你没理解我的意思吧。。?
重点是 data.x = 4; 是不行的阿,但是用scanf( )就可以

不懈
2013-01-12 23:10
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:0 
为什么不行?这段代码放到C++里都没问题。

My life is brilliant
2013-01-12 23:16
快速回复:结构体的初始化方法
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.485861 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved