免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 24342 | 回复: 26
打印 上一主题 下一主题

我很无知 结构体原来可以用等号直接赋值?? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-09-28 17:40 |只看该作者 |倒序浏览
本帖最后由 fishmwei 于 2010-09-28 17:46 编辑

我的测试代码
#include <stdio.h>
#include <stdlib.h>

struct ss_s{
    int a;
    int b;
    char *c;
        int arr[3];
        int *d;
};


int main(void)
{
    struct ss_s tt, tmp;
    int q = 9, i;

    tt.a = 10;
    tt.b = 1000;
    tt.c = "abc";
    tt.d = &q;
   
        tt.arr[0] = 1;
        tt.arr[1] = 2;
        tt.arr[2] = 3;

    tmp = tt;
    printf("%d %d %s %d\n", tmp.a, tmp.b, tmp.c, *tmp.d);   
    for(i = 0; i < 3; i++) {
            printf("tmp.arr[%d] = %d\n", i, tmp.arr);
    }
   
    return 0;
}


gcc 运行结果:

10 1000 abc 9
tmp.arr[0] = 1
tmp.arr[1] = 2
tmp.arr[2] = 3

这。。。,
记得原来有说c不支持这样的。。。啥时候这么ok了?

论坛徽章:
0
2 [报告]
发表于 2010-09-28 17:44 |只看该作者
原来有这一说你怎么当时就没问他,那结构体的值您是怎么赋进去的

论坛徽章:
0
3 [报告]
发表于 2010-09-28 18:02 |只看该作者
我记得是谭浩强说的,当时它用C语言的时候估计还没这标准。
虽说C89开始就支持这个了,而他那本书是91年第一版,但是一直在用turbo c,不知道吧。

论坛徽章:
0
4 [报告]
发表于 2010-09-28 20:05 |只看该作者
恩 看来谭 的书该更新更新了

论坛徽章:
0
5 [报告]
发表于 2010-09-28 22:15 |只看该作者
正式的C标准是90年出的把

论坛徽章:
26
处女座
日期:2016-04-18 14:00:4515-16赛季CBA联赛之深圳
日期:2020-06-02 10:10:5015-16赛季CBA联赛之广夏
日期:2019-07-23 16:59:452016科比退役纪念章
日期:2019-06-26 16:59:1315-16赛季CBA联赛之天津
日期:2019-05-28 14:25:1915-16赛季CBA联赛之青岛
日期:2019-05-16 10:14:082016科比退役纪念章
日期:2019-01-11 14:44:062016科比退役纪念章
日期:2018-07-18 16:17:4015-16赛季CBA联赛之上海
日期:2017-08-22 18:18:5515-16赛季CBA联赛之江苏
日期:2017-08-04 17:00:4715-16赛季CBA联赛之佛山
日期:2017-02-20 18:21:1315-16赛季CBA联赛之天津
日期:2016-12-12 10:44:23
6 [报告]
发表于 2010-09-28 23:59 |只看该作者
应该是逐位拷贝吧 ~  不过我还真没这样用过 ~

论坛徽章:
0
7 [报告]
发表于 2010-09-29 00:53 |只看该作者
这看起来很 cool,但有时候会是一个糟糕的主意。
逐字段拷贝可以很清楚地列出结构体包含的各元素,查看代码时不必总是回去翻结构体 / 对象的定义。

论坛徽章:
0
8 [报告]
发表于 2010-09-29 08:32 |只看该作者
为什么不可以这样子呢?

论坛徽章:
0
9 [报告]
发表于 2010-09-29 08:41 |只看该作者
这看起来很 cool,但有时候会是一个糟糕的主意。
逐字段拷贝可以很清楚地列出结构体包含的各元素,查看代码 ...
langue 发表于 2010-09-29 00:53


如果成员很多或者成员有结构体那会疯掉去

论坛徽章:
0
10 [报告]
发表于 2010-09-29 08:57 |只看该作者
恩,确实可以这样用
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP