搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 数组问题
标题:
数组问题
只看楼主
toto_kuai
等 级:
新手上路
帖 子:6
专家分:0
注 册:2009-10-7
结帖率:
0
楼主
已结贴
√
问题点数:20 回复次数:7
数组问题
#include <stdio.h>
main ( )
{ int a[]={1,2,3,4,5,6,7,8,9,0},*p;
p=a;
printf("%x\n".p);printf("%\n",p+9);
}
若一个 int类型的变量占2个字节,第一个printf 语句输出的是194, 则第二发 printf语句输出的结果的?
请问大家第一个语句是怎么样得到的 在帮我分析哈
搜索更多相关主题的帖子:
include
2010-03-02 19:40
toto_kuai
等 级:
新手上路
帖 子:6
专家分:0
注 册:2009-10-7
第
2
楼
得分:0
在线等 谢谢
2010-03-02 19:40
小J
等 级:
等待验证会员
威 望:
1
帖 子:282
专家分:704
注 册:2009-6-18
第
3
楼
得分:4
第二个打印的0的地址。具体的结果由于机子不同所以结果不一定相同。
因为你的p指的是a的首地址,即p是1的地址,当p+9后p向后移动了9个单位,就指到0,此时输出地是0的地址。
2010-03-02 21:15
陈大师
等 级:
蜘蛛侠
威 望:
1
帖 子:231
专家分:1038
注 册:2009-11-4
第
4
楼
得分:4
#include <stdio.h>
main ( )
{ int a[]={1,2,3,4,5,6,7,8,9,0},*p;
p=a;
printf("%x\n",p);//以十六进制的形式输出a[0],也就是1的地址12ff59
printf("%x\n",p+9);//以十六进制的形式输出a[9],也就是0的地址12ff7c
}
2010-03-02 21:19
toto_kuai
等 级:
新手上路
帖 子:6
专家分:0
注 册:2009-10-7
第
5
楼
得分:0
回复 4楼 陈大师
谢谢
2010-03-04 21:13
冰河砺剑
等 级:
新手上路
帖 子:11
专家分:9
注 册:2009-5-31
第
6
楼
得分:4
回复 4楼 陈大师
学习了
[url=http://blog.]
我的博客
[/url]
2010-03-04 22:16
ldg628
等 级:
火箭侠
威 望:
3
帖 子:526
专家分:3036
注 册:2009-6-23
第
7
楼
得分:4
___ p == 194
|1|___ p + 1 == 194 +sizeof(int)*1
|2|___ p + 2 == 194 +sizeof(int)*2
|3|___
|4|___
|5|___
|6|___
|7|___
|8|___
|9|___ p + 9 == 194 +sizeof(int)*9
|0|
在这里提问约定sizeof(int) == 2, so...
2010-03-06 10:15
zhuyunshen
等 级:
侠之大者
威 望:
2
帖 子:212
专家分:455
注 册:2009-11-22
第
8
楼
得分:4
好好看嘛
2010-03-06 10:43
8
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-298411-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.389955 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved