| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 689 人关注过本帖
标题:[求助]指针问题2
只看楼主 加入收藏
xuexuexue
Rank: 1
等 级:新手上路
帖 子:118
专家分:0
注 册:2004-7-19
收藏
 问题点数:0 回复次数:5 
[求助]指针问题2
main()
{int a[10]={1,2,3,4,5,6,7,8,9,0},*p;
 p=a;
 printf ("%x\n",p);
 printf ("%x\n",p+9);
}
该程序有两个printf语句,如果第一个printf语句输出的是194,则第二个printf语句的输出结果为何为la6???
搜索更多相关主题的帖子: 指针 
2004-09-19 16:29
空前
Rank: 1
等 级:新手上路
帖 子:1146
专家分:0
注 册:2004-5-11
收藏
得分:0 

输出的两个都是地址,并不是他所指向的数值,

可以改一下:

printf ("%x\n",*p); printf ("%x\n",*(p+9));


2004-09-19 19:00
kuangjingbo
Rank: 1
等 级:新手上路
帖 子:312
专家分:0
注 册:2004-4-24
收藏
得分:0 

你输出的不是数组的元素,而是数组元素的地址

当p为194时 , p+9 的地址应该是 : 194 + 9 * sizeof(int)

= 194 + 9 *2

= 194 + 12

=1a6

注意上面的数都是16进制的!


永不放弃!
2004-09-19 19:03
kuangjingbo
Rank: 1
等 级:新手上路
帖 子:312
专家分:0
注 册:2004-4-24
收藏
得分:0 
而且是在16位系统中的

永不放弃!
2004-09-19 19:03
空前
Rank: 1
等 级:新手上路
帖 子:1146
专家分:0
注 册:2004-5-11
收藏
得分:0 
厉害,够详细!

2004-09-19 19:16
xuexuexue
Rank: 1
等 级:新手上路
帖 子:118
专家分:0
注 册:2004-7-19
收藏
得分:0 
谢谢大家

C语言让我感爱到了计算机的乐趣 目前目标:程序员
2004-09-20 21:11
快速回复:[求助]指针问题2
数据加载中...
 
   



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

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