| 网站首页 | 业界新闻 | 群组 | 人才 | 下载频道 | 博客 | 代码贴 | 编程论坛
共有 175 人关注过本帖
标题:各位前辈,我想看这几种变量的字节数,打印出来的地址都是相差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);
}
附件: 您没有浏览附件的权限,请 登录注册
2018-04-13 09:05
童生
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:75
专家分:111
注 册: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
等 级:版主
威 望:236
帖 子:5491
专家分:30738
注 册: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
等 级:版主
威 望:236
帖 子:5491
专家分:30738
注 册: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







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

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