| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1809 人关注过本帖
标题:各位前辈,我想看这几种变量的字节数,打印出来的地址都是相差4个字节,请问 ...
只看楼主 加入收藏
huangzepo
Rank: 1
等 级:新手上路
帖 子:5
专家分:4
注 册:2018-4-13
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
各位前辈,我想看这几种变量的字节数,打印出来的地址都是相差4个字节,请问问题出在哪?谢谢你们!
各位前辈,我想看这几种变量的字节数,打印出来的地址都是相差4个字节,请问问题出在哪?谢谢你们!
#include"stdio.h"
main()
{
    int x=64;
    float y=44.23l;
    char ch='K';
    int j=125;
    printf("the value of x is %d,the add of x is %u\n",ch,&ch);
    printf("the value of y is %f,the add of y is %u\n",y,&y);
    printf("the value of x is %d,the add of ch is %u\n",ch,&ch);
    printf("the value of x is %d,the add of j is %u\n",j,&j);
}
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: 变量 字节 the value add 
2018-04-13 09:05
童生
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:205
专家分:455
注 册:2018-3-7
收藏
得分:0 
    printf("the value of x is %d,the add of x is %u\n",ch,&ch);
    printf("the value of y is %f,the add of y is %u\n",y,&y);
    printf("the value of x is %d,the add of ch is %u\n",ch,&ch);
    printf("the value of x is %d,the add of j is %u\n",j,&j);

自己都不检查就往论坛发?这个心态学个屁!
2018-04-13 09:18
huangzepo
Rank: 1
等 级:新手上路
帖 子:5
专家分:4
注 册:2018-4-13
收藏
得分:0 
回复 2楼 童生
谢谢指正,字符常量是想让它输出对应Ascall码,这是改正后的,以4个字节差
图片附件: 游客没有浏览图片的权限,请 登录注册
2018-04-13 09:29
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9031
专家分:54061
注 册:2011-1-18
收藏
得分:0 
差4个字节怎么啦?
要想知道类型的长度,请用 sizeof 关键字
2018-04-13 09:44
huangzepo
Rank: 1
等 级:新手上路
帖 子:5
专家分:4
注 册:2018-4-13
收藏
得分:0 
回复 4楼 rjsp
打印出来的地址差,从下到上不应该是2,1,4吗?整形两个字节,字符型常量1个字节,单精度浮点型4个字节,现在从下到上地址依次差4,4,4
2018-04-13 11:55
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9031
专家分:54061
注 册:2011-1-18
收藏
得分:20 
以下是引用huangzepo在2018-4-13 11:55:35的发言:

打印出来的地址差,从下到上不应该是2,1,4吗?
你在哪里听说的?
假如公交车里就两人,是不是必须得紧挨着站一起?

根据C/C++标准,如下代码
int a, b;
intptr_t delta = &a-&b;
属于未定义行为,因为C/C++并没有规定a和b的布局之间有任何联系。


[此贴子已经被作者于2018-4-13 23:33编辑过]

2018-04-13 12:24
huangzepo
Rank: 1
等 级:新手上路
帖 子:5
专家分:4
注 册:2018-4-13
收藏
得分:0 
回复 6楼 rjsp
谢谢您,因为我不懂系统实际的运作原理,以为定义并赋初值后,系统就会给他们分配挨到一起的地址,谢谢您!但也有的疑问,从输出的结果看好像系统默认最低以四个字节差来存放,您是否系统知道是不是这个规律存放?谢谢。
2018-04-13 15:06
快速回复:各位前辈,我想看这几种变量的字节数,打印出来的地址都是相差4个字节 ...
数据加载中...
 
   



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

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