|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 问一个有关地址输出的问题
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
381
人关注过本帖
标题:
问一个有关地址输出的问题
只看楼主
加入收藏
落雨的季节
等 级:
新手上路
帖 子:10
专家分:2
注 册:2012-12-12
结帖率:
75%
楼主
收藏
问题点数:0 回复次数:4
问一个有关地址输出的问题
#include "stdio.h"
void main()
{ int a[3];
printf("%d,%d\n",&a[0],&a[2]);
printf("%d",&a[2]-&a[0]);
}
输出:
1245044,1245052
2
正常情况下第二行的输出不应该是8吗?
为什么是2呀?
搜索更多相关主题的帖子:
include
2012-12-20 17:09
举报帖子
使用道具
赠送鲜花
bulubulukaka
等 级:
论坛游民
帖 子:19
专家分:40
注 册:2012-12-5
第
2
楼
收藏
得分:0
这个是因为指针相减不是简单的算数相减,还和他们的类型有关
(ptr1-ptr2)/(指针类型),而int为4字节。故8/4=2
2012-12-20 17:53
举报帖子
使用道具
赠送鲜花
小小战士
等 级:
蜘蛛侠
威 望:
1
帖 子:569
专家分:1313
注 册:2012-11-3
第
3
楼
收藏
得分:0
对
那么有人说,地址相减有什么用呢?
告诉你个算数组中或者字符串中计算元素个数的简单办法,那就是末元素地址减去首元素地址再加1哦,可以测试测试!
小小战士,战士中的战斗机!
2012-12-20 18:00
举报帖子
使用道具
赠送鲜花
落雨的季节
等 级:
新手上路
帖 子:10
专家分:2
注 册:2012-12-12
第
4
楼
收藏
得分:0
回复 2楼 bulubulukaka
再追问一下,指针相减指的是两个数组元素间相差的元素个数吗?
谢谢~
2012-12-20 18:36
举报帖子
使用道具
赠送鲜花
bulubulukaka
等 级:
论坛游民
帖 子:19
专家分:40
注 册:2012-12-5
第
5
楼
收藏
得分:0
回复 4楼 落雨的季节
“指针相减指的是两个数组元素间相差的元素个数吗?”
基本上就是这个意思,比如指针ptr1指向arr[0],指针ptr2指向arr[2],那么ptr2-ptr1就是两个数组元素间相差的元素个数。
啰嗦一句,如果不同类型的指针相减,比如int型的和char型的相减,编译器是不会通过的,会提示你减号两边的指针类型不一致。
2012-12-21 14:53
举报帖子
使用道具
赠送鲜花
5
1/1页
1
快速回复:
问一个有关地址输出的问题
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.039494 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved