| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1769 人关注过本帖
标题:结构体数组的赋值
取消只看楼主 加入收藏
lyl930130
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:323
专家分:111
注 册:2013-5-13
结帖率:91.43%
收藏
已结贴  问题点数:20 回复次数:3 
结构体数组的赋值
struct book{};

struct book a[100];
struct book temp={};//初始化并赋值

能不能直接a[i]=temp

如果可以的话,这是把a[i]的地址指向temp的地址还是和int类型一样,只給值
搜索更多相关主题的帖子: 结构体 
2014-11-24 17:10
lyl930130
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:323
专家分:111
注 册:2013-5-13
收藏
得分:0 
回复 2 楼 azzbcc
谢谢。
为什么这么直接赋值不好?和一项一项赋有什么区别?
2014-11-26 08:39
lyl930130
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:323
专家分:111
注 册:2013-5-13
收藏
得分:0 
回复 7 楼 soulmate1023
我的和你的有点出入
#include<stdio.h>
struct temp_state_data {
                        unsigned char state[6];
                        float state_data;};


int main()
{
    int i;unsigned char temp='a';
    struct temp_state_data data[3],temp_1;
    for(i=0;i<6;i++)
        data[0].state[i]=temp++;
    data[0].state_data=1.0;

    for(i=0;i<6;i++)
        temp_1.state[i]=data[0].state[i];
    temp_1.state_data=data[0].state_data;

    data[1]=data[0];
    data[2]=temp_1;

    printf("the data address is %p\n",data);
    printf("the data[0] address is %p\n",data[0]);
    printf("the data[1] address is %p\n",data[1]);
    printf("the data[2] address is %p\n",data[2]);

    printf("the &data address is %p\n",&data);
    printf("the &data[0] address is %p\n",&data[0]);
    printf("the &data[1] address is %p\n",&data[1]);
    printf("the &data[2] address is %p\n",&data[2]);

    printf("the data[0].state address is %p\n",data[0].state);
    printf("the data[1].state address is %p\n",data[1].state);
    printf("the data[2].state address is %p\n",data[2].state);

    printf("the &data[0].state address is %p\n",&data[0].state);
    printf("the &data[1].state address is %p\n",&data[1].state);
    printf("the &data[2].state address is %p\n",&data[2].state);

    retrun 0;

}
2014-11-30 17:10
lyl930130
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:323
专家分:111
注 册:2013-5-13
收藏
得分:0 
回复 6 楼 azzbcc
版主,我有一点还是不明白。
不是说数组名就是地址吗。
我那段里面data和&data的地址,包括data[i].state和&data[i].state的地址就是一样的。
但是和楼上那位朋友的结果类似,data[i](i不同)的地址是相同的,data[i]和&data[i]的地址不同。
和那个朋友的区别在于,我的这个地址全是数字,而且和代码里的其他地址没有一点关联。
2014-11-30 17:13
快速回复:结构体数组的赋值
数据加载中...
 
   



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

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