| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦   
共有 358 人关注过本帖
标题:求教一个简单的&运算
收藏  订阅  推荐  打印
zhengxk89
Rank: 1
等级:新手上路
帖子:11
积分:222
注册:2008-7-29
求教一个简单的&运算

本人最近刚开始学C,遇到了一个问题,请大家帮忙解决一下,感激不尽哦
main()
{
int i,m;
i=10;
m=&i;
printf("%d,%x\n",i,m);
printf("%d,%d\n",i,m);
}
结果:10,ffd4
      10,-40
请问一下这个ffd4和-40到底怎么算出来的啊,能不能详细的说明一下
2008-8-3 17:36
chengli
Rank: 1
等级:新手上路
帖子:25
积分:436
注册:2008-7-3
这个跟补码有关

ffd4 用%x输出原值ffd4,也可以用%p,这是相对于一个段地的偏移地址。
用%d输出是有正负的,ffd4的值就是-40.
2008-8-3 18:35
hundnn
Rank: 2
等级:注册会员
帖子:107
积分:1232
注册:2007-8-23

我这里不能通过编译./.

#include <stdio.h>

main()
{
    int i,*m; //这里加上指针符号后得到的结果是  10,12ff7x
                                                10,1245052
   
i=10;
    m=&i;
    printf("%d,%x\n",i,m); //把i的值以十进制输出;后面把i的地址(m)按十六进制输出
    printf("%d,%d\n",i,m); //把i的值以十进制输出;后面把i的地址(m)按十进制输出

}

人生若只如初见/何事秋风悲画扇
2008-8-3 18:42
妍清舞
Rank: 2
等级:注册会员
帖子:121
积分:1358
注册:2007-11-12

#include<stdio.h>
#include<stdlib.h>
int main()
{
    int i,m;
    i=10;
    m=&i;——这句好像不行吧
    错误提示: invalid conversion from 'int*' to 'int' (Dev-C++)
    printf("%d,%x\n",i,m);
    printf("%d,%d\n",i,m);
    system("pause");
    return 0;
}

修改为:
#include<stdio.h>
#include<stdlib.h>
int main()
{
    int i=10;
    int *m;
    m=&i;
    printf("i=%d,m=%x=%d\n",i,m,m);
    system("pause");
    return 0;
}
Dev-C++ 4.9.9.2得出的结果:
i=10,m=22ff54=2293588
解释见2#
2008-8-3 19:34
hundnn
Rank: 2
等级:注册会员
帖子:107
积分:1232
注册:2007-8-23

引用:
妍清舞 在 2008-8-3 19:34 的发言:

#include
#include
int main()
{
    int i,m;
    i=10;
    m=&i;——这句好像不行吧
    错误提示: invalid conversion from 'int*' to 'int' (Dev-C++)
    printf("%d,%x\n",i,m);
    printf("%d,%d ...
我这边VC得出的结果是i=10,m=12ff7c=1245052

人生若只如初见/何事秋风悲画扇
2008-8-3 20:11
haozi163
Rank: 1
等级:新手上路
帖子:26
积分:364
注册:2007-9-21

2楼的对,m应该是个指针表示地址的。。
int i;
int *m;
2008-8-4 14:11
zhurong
Rank: 1
来自: 苏州
等级:新手上路
帖子:13
积分:254
注册:2008-8-7
回复 1# zhengxk89 的帖子

m=&i是把i的地址赋给m,m应当改为指针
2008-8-8 10:56
zgj_123
Rank: 1
等级:新手上路
帖子:6
积分:162
注册:2008-7-4

3#的应该对吧!
2008-8-8 12:53
missiyou
Rank: 12Rank: 12Rank: 12
等级:版主
威望:7
帖子:300
积分:2713
注册:2007-10-9

晕啊

m=(int )&i;
ok!!!!!来个类型转换,把指针值,转换成int类型的值。
2008-8-8 22:17
共有 357 人关注过本帖
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.052438 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved