标题:求教一个简单的&运算
只看楼主
zhengxk89
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2008-7-29
结帖率:100%
 问题点数:0 回复次数:8 
求教一个简单的&运算
本人最近刚开始学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到底怎么算出来的啊,能不能详细的说明一下
搜索更多相关主题的帖子: 运算 printf main 
2008-08-03 17:36
chengli
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2008-7-3
得分:0 
这个跟补码有关
ffd4 用%x输出原值ffd4,也可以用%p,这是相对于一个段地的偏移地址。
用%d输出是有正负的,ffd4的值就是-40.
2008-08-03 18:35
hundnn
Rank: 1
等 级:新手上路
帖 子:123
专家分:0
注 册:2007-8-23
得分:0 
我这里不能通过编译./.

#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-08-03 18:42
妍清舞
Rank: 1
等 级:新手上路
帖 子:121
专家分:0
注 册:2007-11-12
得分:0 
#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-08-03 19:34
hundnn
Rank: 1
等 级:新手上路
帖 子:123
专家分:0
注 册:2007-8-23
得分:0 
[bo][un]妍清舞[/un] 在 2008-8-3 19:34 的发言:[/bo]

#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-08-03 20:11
haozi163
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2007-9-21
得分:0 
2楼的对,m应该是个指针表示地址的。。
int i;
int *m;
2008-08-04 14:11
zhurong
Rank: 1
来 自: 苏州
等 级:新手上路
帖 子:23
专家分:0
注 册:2008-8-7
得分:0 
回复 1# zhengxk89 的帖子
m=&i是把i的地址赋给m,m应当改为指针
2008-08-08 10:56
zgj_123
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2008-7-4
得分:0 
3#的应该对吧!
2008-08-08 12:53
missiyou
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:531
专家分:218
注 册:2007-10-9
得分:0 
晕啊

m=(int )&i;
ok!!!!!来个类型转换,把指针值,转换成int类型的值。
2008-08-08 22:17



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




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

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