| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 538 人关注过本帖
标题:int j=10 j变量的地址值为什么为负数?
只看楼主 加入收藏
z_j_j_1
Rank: 4
等 级:业余侠客
威 望:1
帖 子:62
专家分:213
注 册:2015-4-4
结帖率:50%
收藏
已结贴  问题点数:10 回复次数:3 
int j=10 j变量的地址值为什么为负数?
#include<stdio.h>
int main(int argc,char *argv[])
{
    int j = 10;
    long int tmp = 0;
    tmp = (long int)(&j);
    printf("variable j address:%ld\n",tmp);
}
在ubuntu gcc环境下 此时计算机为变量j分配的存储地址输出是负数:variable j address:-1081997500。那么问题来了:你造原因吗?
搜索更多相关主题的帖子: ubuntu address 计算机 
2015-04-06 10:34
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
收藏
得分:3 
#include<stdio.h>
int main(int argc,char *argv[])
{
    int j = 10;
    //long int tmp = 0;
    //tmp = (long int)(&j);
    printf("variable j address:%p\n",&j);
}
这样求j的地址试试

一片落叶掉进了回忆的流年。
2015-04-06 11:21
wfoo
Rank: 3Rank: 3
等 级:论坛游侠
威 望:7
帖 子:120
专家分:134
注 册:2011-8-6
收藏
得分:6 
所有的地址都是无符号数,楼主把这个无符号数强转为了有符号数,但是这个无符号数又超出了有符号数的范围,输出的结果只是看起来是负数罢了。
2015-04-06 12:11
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:1 
楼上+1

如果你只是想看地址 用这个

    int j = 10;
    printf("%p", &j);

2015-04-06 13:57
快速回复:int j=10 j变量的地址值为什么为负数?
数据加载中...
 
   



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

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