| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2131 人关注过本帖
标题:以下程序的输出结果是:
只看楼主 加入收藏
cheetah
Rank: 3Rank: 3
等 级:论坛游侠
威 望:3
帖 子:120
专家分:118
注 册:2013-6-29
结帖率:85.71%
收藏
已结贴  问题点数:20 回复次数:10 
以下程序的输出结果是:
#include <stdio.h>
void main()
{
    int a[] = {1,2,3,4,5,6,7,8,9}, *p;
    p = a;
    printf ("%x\n", p);
    printf ("%x\n", p + 9);
}
若一个int类型的变量占2个字节,第一个printf语句输出的是194,则第二个printf语句的输出结果是?
我感觉应该是212,p向前移动9个存储单元,每个存储单元占2个字节,所以应该是212,可是答案却是1a6
我不知道这个1a6是怎么得来的,请大神明示,非常感谢!

[此贴子已经被作者于2016-3-12 19:27编辑过]

搜索更多相关主题的帖子: include 
2016-03-12 19:15
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:5 
你别用10进制的思维算加法,要知道194,1a6都是16进制的,你再算算。

   唯实惟新 至诚致志
2016-03-12 20:40
alice_usnet
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:18
帖 子:370
专家分:2020
注 册:2016-3-7
收藏
得分:5 
192=0x404,1a6=0x422

未佩好剑,转身便已是江湖
2016-03-12 21:11
z13631440976
Rank: 3Rank: 3
来 自:广州
等 级:论坛游侠
威 望:2
帖 子:40
专家分:118
注 册:2016-3-5
收藏
得分:5 
都转化为10 进制输出你就明白了
而且一个int整型所占的字节数目是4 p每加一向下移动4个字节
自己试试吧
2016-03-12 21:13
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:5 
回复 楼主 cheetah
这和指针指向是int型有关,如果int型是2个字节,则p+9实际移动p+9*2个位置,&H194+&H9*2=&H194+&H12=&H1A6

[此贴子已经被作者于2016-3-12 21:16编辑过]


能编个毛线衣吗?
2016-03-12 21:14
cheetah
Rank: 3Rank: 3
等 级:论坛游侠
威 望:3
帖 子:120
专家分:118
注 册:2013-6-29
收藏
得分:0 
回复 2楼 qq1023569223
谢谢版主,终于明白了,我只知道1a6是十六进制的没想到194也是十六进制的,要转换成相同进制才能进行加法运算!
再转换成十六进制的地址值就是1a6!

天道酬勤
2016-03-12 21:22
cheetah
Rank: 3Rank: 3
等 级:论坛游侠
威 望:3
帖 子:120
专家分:118
注 册:2013-6-29
收藏
得分:0 
回复 3楼 alice_usnet
是0x194 = 410

天道酬勤
2016-03-12 21:25
cheetah
Rank: 3Rank: 3
等 级:论坛游侠
威 望:3
帖 子:120
专家分:118
注 册:2013-6-29
收藏
得分:0 
回复 5楼 wmf2014
明白了,谢谢版主!

天道酬勤
2016-03-12 21:30
cheetah
Rank: 3Rank: 3
等 级:论坛游侠
威 望:3
帖 子:120
专家分:118
注 册:2013-6-29
收藏
得分:0 
回复 5楼 wmf2014
数字前面的&H代表什么?

天道酬勤
2016-03-12 21:33
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
以下是引用cheetah在2016-3-12 21:33:57的发言:

数字前面的&H代表什么?

那是十六进制数字的约定符
收到的鲜花
  • cheetah2016-03-12 21:58 送鲜花  5朵  

授人以渔,不授人以鱼。
2016-03-12 21:42
快速回复:以下程序的输出结果是:
数据加载中...
 
   



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

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