|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 菜鸟关于指针用用法的问题
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
539
人关注过本帖
标题:
菜鸟关于指针用用法的问题
只看楼主
加入收藏
陈宇水
来 自:东莞
等 级:
论坛游民
帖 子:29
专家分:34
注 册:2013-5-5
结帖率:
100%
楼主
收藏
已结贴
√
问题点数:10 回复次数:7
菜鸟关于指针用用法的问题
#include<stdio.h>
main()
{
int t, a[10]={0,1,2,3,4,5,6,7,8,9};
int *i;
i=&a[0];
for(t=0;t<10;t++)
{printf("%d,%d,%d,%d,%d",a[t],i[t],*(a+t),*(i+t),*(i++));
printf("\n");}
return 0;
}
为何第2和第4个数输出的答案不正确啊,我是菜鸟,求答复
2013-05-05 10:34
举报帖子
使用道具
赠送鲜花
小小的C
等 级:
论坛游民
帖 子:31
专家分:22
注 册:2013-4-19
第
2
楼
收藏
得分:0
i++后循环式再i+t超出数组范围了吧
新手发言,勿怪。
2013-05-05 10:45
举报帖子
使用道具
赠送鲜花
pauljames
等 级:
千里冰封
威 望:
9
帖 子:1555
专家分:10000
注 册:2011-5-8
第
3
楼
收藏
得分:0
变量名字好混乱
经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2013-05-05 10:52
举报帖子
使用道具
赠送鲜花
小小玉
等 级:
论坛游侠
帖 子:47
专家分:156
注 册:2013-4-13
第
4
楼
收藏
得分:3
指针i的长度为4个字节,而数组里面的元素的长度为2个字节,指针每次加1,他所指向的在数组里面加2个字节,也就是
i[0]==0,i[1]==2,i[2]==4,i[3]==6,i[4]==8,之后的都超出了数组的范围。第四个和第二个是一样的。不知道你懂了没?
2013-05-05 11:06
举报帖子
使用道具
赠送鲜花
邓士林
来 自:淮河河畔
等 级:
贵宾
威 望:
61
帖 子:2392
专家分:13384
注 册:2013-3-3
第
5
楼
收藏
得分:5
你要明白,结果和你想的不一样,主要是由于数组是按下标处理,而指针则不是,它计算过一次,下一次它会以上一次为基础计算,所以你在循环的过程中,指针的变化比数组快,而且超过下标就会出错数,你看看下面的程序
#include<stdio.h>
main()
{
int t, a[10]={0,1,2,3,4,5,6,7,8,9};
int *i;
for(t=0;t<10;t++)
{ i=&a[0];
printf("%d,%d,%d,%d,%d",a[t],i[t],*(a+t),*(i+t),*(i++));
printf("\n");
}
return 0;
}
Maybe
2013-05-05 11:17
举报帖子
使用道具
赠送鲜花
陈宇水
来 自:东莞
等 级:
论坛游民
帖 子:29
专家分:34
注 册:2013-5-5
第
6
楼
收藏
得分:0
回复 4楼 小小玉
很感谢你的宝贵意见,我明白你的意思,但我由一点不明的是,看下面程序
#include<stdio.h>
main()
{
int i,a[10]={0,1,2,3,4,5,6,7,8,9};
int *p;
p=a;
for(i=0;i<10;i++)
printf("%d\t",p[i]);
return 0;
}
这个输出来的结果就是按顺序输出,不是如你所说的0,2,4,6,8输出,请问是什么回事啊
我是一个C语言初学者
2013-05-05 14:21
举报帖子
使用道具
赠送鲜花
陈宇水
来 自:东莞
等 级:
论坛游民
帖 子:29
专家分:34
注 册:2013-5-5
第
7
楼
收藏
得分:0
回复 5楼 邓士林
我还是不太明白为何我的程序中第二和第四个数是0,2,4,6,8这样输出的
我是一个C语言初学者
2013-05-05 14:23
举报帖子
使用道具
赠送鲜花
小小的C
等 级:
论坛游民
帖 子:31
专家分:22
注 册:2013-4-19
第
8
楼
收藏
得分:2
回复 6楼 陈宇水
不同的编译环境结果是不一样的tc是俩字节VC是4字节。所以十0 1 2 3 4
5。。。。。。
新手发言,勿怪。
2013-05-05 15:21
举报帖子
使用道具
赠送鲜花
8
1/1页
1
快速回复:
菜鸟关于指针用用法的问题
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.033491 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved