标题:想请教一下结构变量的存储方式
只看楼主
卡卡3315
Rank: 1
等 级:新手上路
帖 子:11
专家分:8
注 册:2019-6-24
结帖率:100%
已结贴  问题点数:20 回复次数:6 
想请教一下结构变量的存储方式
已经知道了结构是对齐存储的,那么结构变量的名字存在哪里了?如果对结构变量取地址的话应该是取得哪一个地址?
举个例子:
#include<stdio.h>
struct date{
    int year;
    int month;
    int day;
};
int main(int argc,const char *argv[])
{
    date today = {2019,2,3};
    printf("%d %d %d",today.day,today.month,today.year);
    return 0;
}
如果取&today,应该指向哪里?
另外我在main里面定义today时没有加struct为什么也能通过编译而且运行正常?
搜索更多相关主题的帖子: 变量 int 存储 main 结构 
2020-03-22 18:06
return_0
Rank: 8Rank: 8
来 自:五维空间
等 级:禁止访问
威 望:3
帖 子:512
专家分:838
注 册:2020-1-28
得分:7 
指向的是自定义的一个联合体

2020-03-22 18:20
return_0
Rank: 8Rank: 8
来 自:五维空间
等 级:禁止访问
威 望:3
帖 子:512
专家分:838
注 册:2020-1-28
得分:0 
他们是和在一起储存的

2020-03-22 18:23
forever74
Rank: 12Rank: 12Rank: 12
来 自:CC
等 级:贵宾
威 望:49
帖 子:1636
专家分:3940
注 册:2007-12-27
得分:7 
一般来说,从数值(地址值)上看,忽略其他,
&today 和 &today.year 应该是一致的

你编译能成功是因为你的编译器运行在C++模式。


[此贴子已经被作者于2020-3-22 21:16编辑过]


对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2020-03-22 21:15
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
得分:7 
变量名存哪里?
变量名不存
变量名只是一个给编译器看的符号
编译器把这个符号和内存关联起来
对变量的读写 映射为对相应内存的读写
然后就木有了

备注 我知道全局符号有存 没必要讨论 略

https://zh.
2020-03-22 21:33
卡卡3315
Rank: 1
等 级:新手上路
帖 子:11
专家分:8
注 册:2019-6-24
得分:0 
回复 5楼 lin5161678
感谢
2020-03-23 10:19
maomao12345
Rank: 2
来 自:五位神奇空间
等 级:禁止访问
威 望:2
帖 子:127
专家分:64
注 册:2020-3-23
得分:0 
变量名只是区分变量的符号

一个快乐的小小孩
2020-03-24 09:46



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-500512-1-1.html




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

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