|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 遇到个问题
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
404
人关注过本帖
标题:
遇到个问题
只看楼主
加入收藏
whoaiwo310
等 级:
新手上路
帖 子:36
专家分:0
注 册:2010-3-16
结帖率:
100%
楼主
收藏
已结贴
√
问题点数:20 回复次数:6
遇到个问题
#include"stdio.h"
main()
{
int i, x[3][3]={9,8,7,,6,5,4}, *p=&x[1][1];
for(i=0;i<4;i+=2) printf("%d",p[i]);
getch();
}
刚做题遇到这个题目,感觉有问题。 题目中p是个指针变量但并不是指针数组,为什么还可以输出p[i]呢
好奇怪,是不是题目有问题啊!待高人解释下!谢了!
搜索更多相关主题的帖子:
include
2010-03-22 22:41
举报帖子
使用道具
赠送鲜花
ldg628
等 级:
火箭侠
威 望:
3
帖 子:526
专家分:3036
注 册:2009-6-23
第
2
楼
收藏
得分:10
p[i]相当于*(p + i),p+i相当于p这个地址加上 sizeof(type)*i 那么长,其中type为指针p的类型
2010-03-22 22:49
举报帖子
使用道具
赠送鲜花
whoaiwo310
等 级:
新手上路
帖 子:36
专家分:0
注 册:2010-3-16
第
3
楼
收藏
得分:0
哦 有点明白 那怎么区分p[i]是指针数组还是*(p+i) 是不是要看题目怎么说啊!!
2010-03-22 23:06
举报帖子
使用道具
赠送鲜花
一口三个汉堡
等 级:
黑侠
威 望:
3
帖 子:155
专家分:525
注 册:2010-3-21
第
4
楼
收藏
得分:10
include"stdio.h"
main()
{
int i, x[3][3]={9,8,7,,6,5,4}, *p=&x[1][1];//把x[1][1]的地址赋予指针变量p
for(i=0;i<4;i+=2) printf("%d",p[i]);//此时p[0]==x[1][1];p[2]==p[0]+2也就是楼上说的加上sizeof(type)*i就等于p[2][0];所以输出就是50
getch();
}
坚持做对的事情,而不是容易的事情。
2010-03-22 23:07
举报帖子
使用道具
赠送鲜花
一口三个汉堡
等 级:
黑侠
威 望:
3
帖 子:155
专家分:525
注 册:2010-3-21
第
5
楼
收藏
得分:0
这两个是一样的意思,系统对于数组的处理就是当成指针来处理的。对于指针有两种标志,一种就是下标法如a[i],另一种就是*(a+i);一样的本质。
坚持做对的事情,而不是容易的事情。
2010-03-22 23:10
举报帖子
使用道具
赠送鲜花
whoaiwo310
等 级:
新手上路
帖 子:36
专家分:0
注 册:2010-3-16
第
6
楼
收藏
得分:0
明白了 谢谢了啊
2010-03-22 23:14
举报帖子
使用道具
赠送鲜花
ldg628
等 级:
火箭侠
威 望:
3
帖 子:526
专家分:3036
注 册:2009-6-23
第
7
楼
收藏
得分:0
回复 3楼 whoaiwo310
主要是看你自己的定义,用法是多种多样的,指针很灵活。。。
int *p[10] 这样定义才是指针数组
int (*p)[10]这样定义是数组指针
2010-03-22 23:16
举报帖子
使用道具
赠送鲜花
7
1/1页
1
快速回复:
遇到个问题
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.027477 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved