|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ [讨论]请教各位高手!!
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
569
人关注过本帖
标题:
[讨论]请教各位高手!!
只看楼主
加入收藏
dongfz
等 级:
新手上路
帖 子:40
专家分:0
注 册:2005-3-8
楼主
收藏
问题点数:0 回复次数:4
[讨论]请教各位高手!!
地址值问题:
main()
{int a[10]={1,2,3,4,5,6,7,8,9},*p;
p=a;
printf("%x\n",p);
printf("%x\n",p+9);
getch();
}
如果第一个printf输出的是194;那么第二个printf输出多少呢?
答案是1a6,我不明白为什么,请教各位!!
2005-03-19 22:30
举报帖子
使用道具
赠送鲜花
神vLinux飘飘
来 自:浙江杭州
等 级:
贵宾
威 望:
91
帖 子:6140
专家分:217
注 册:2004-7-17
第
2
楼
收藏
得分:0
这题是考你对指针的类型的认识
char *p;
cp++;
int *p;
ip++;
这两个p++;的步长是不一样的.
char 占一个字节,所以如果原来cp=00那么cp++之后cp将会等于01
而int就不同
int 占两个字节,所以如果原来tp=00那么ip++这后ip将会等于02
所以答案的x01a6其实是x0194+9*2得来的
淘宝杜琨
2005-03-20 01:31
举报帖子
使用道具
赠送鲜花
dongfz
等 级:
新手上路
帖 子:40
专家分:0
注 册:2005-3-8
第
3
楼
收藏
得分:0
以下是引用
神vLinux飘飘
在2005-3-20 1:31:44的发言:
这题是考你对指针的类型的认识 char *p; cp++; int *p; ip++; 这两个p++;的步长是不一样的. char 占一个字节,所以如果原来cp=00那么cp++之后cp将会等于01 而int就不同 int 占两个字节,所以如果原来tp=00那么ip++这后ip将会等于02 所以答案的x01a6其实是x0194+9*2得来的
在我发帖之后,我想了一想,也终于明白了。跟楼上的朋友说得差不多。不过,我查过指针都是占两个字节的!!也就是说: char *pc-------pc的地址假如是00---------------pc++之后地址变成了02 int *pi也是一样,同样double *pd也是!!
是金子就一定会发亮吗?高手也需要低调!!!!
2005-03-20 12:17
举报帖子
使用道具
赠送鲜花
dongfz
等 级:
新手上路
帖 子:40
专家分:0
注 册:2005-3-8
第
4
楼
收藏
得分:0
不过数组就不同。就是说:字符数组每个元素占一个字节;整形数组占两个字节;浮点数组占4个字节!!
是金子就一定会发亮吗?高手也需要低调!!!!
2005-03-20 12:24
举报帖子
使用道具
赠送鲜花
神vLinux飘飘
来 自:浙江杭州
等 级:
贵宾
威 望:
91
帖 子:6140
专家分:217
注 册:2004-7-17
第
5
楼
收藏
得分:0
“char *pc-------pc的地址假如是00---------------pc++之后地址变成了02”
好像感觉我没说过这样的话.....
pc++之后应该是01,因为char是1个字节
“指针都是占两个字节的”
这句话是对的,但是不能和pc++混淆。这两个是不同的概念!
淘宝杜琨
2005-03-20 12:54
举报帖子
使用道具
赠送鲜花
5
1/1页
1
快速回复:
[讨论]请教各位高手!!
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.050892 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved