| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 408 人关注过本帖
标题:问一个小问题..学过指针的帮下忙啊..
只看楼主 加入收藏
vcx
Rank: 2
等 级:论坛游民
帖 子:61
专家分:81
注 册:2009-9-15
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:5 
问一个小问题..学过指针的帮下忙啊..
for(p=number+1;p<number+10;p++)

for(p=number;p<number+9;p++)
有什么区别?
为什么两条语句执行出来的结果都是一样的?
上面 int *p ,number[],数组里有10个数.
谢谢..
***********************************************
输出的是这个,
int *p;
    for(p=number;p<number+10;p++)
        printf("%d ",*p);
为什么用指针输出就是相同的呢?

[ 本帖最后由 vcx 于 2009-10-23 13:24 编辑 ]
搜索更多相关主题的帖子: 指针 
2009-10-23 10:33
玩出来的代码
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:河南新乡
等 级:贵宾
威 望:11
帖 子:742
专家分:2989
注 册:2009-10-12
收藏
得分:2 
第一句是1到9,第二句是0到8个数相同,如果输出是按指针来算就相同,而数组就不相同了。第一句数number【0】没有赋值,第二句number【0】又值。

离恨恰如春草,更行更远还生。
2009-10-23 10:39
m456m654
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:783
专家分:2806
注 册:2009-9-17
收藏
得分:2 
两条语句怎么会一样的结果呢?
/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
    int *p,a[10]={1,2,3,4,5,6,7,8,9,0};
    for(p=a+1;p<a+10;p++)
        printf("%3d",*p);
        printf("\n");
    for(p=a;p<a+9;p++)
        printf("%3d",*p);
         
}
试试这个测试程序;
2009-10-23 10:43
我菜119
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:938
专家分:1756
注 册:2009-10-17
收藏
得分:2 
#include "stdio.h"  
void main()  
{  
    int *p,a[10]={1,2,3,4,5,6,7,8,9,0};  
    for(p=a+1;p<a+10;p++)  
        printf("%3d",*p);  
        printf("\n");  
    for(p=a;p<a+9;p++)  
        printf("%3d",*p);  
         
}
结果:
   2  3  4  5  6  7  8  9  0
   1  2  3  4  5  6  7  8  9

我在vc6.0上试过这个程序了,这两个结果是不一样的。因为这是一个关于指针指向的问题,

对于第一个for语句的p=a+1是指向了数组a[10]中的第二个元素“2”的地址,也就是for的循环是
从定义的数组的第二个元素“2”开始,而第二个for循环中的p=a则指向了数组a[10]中的第一个
元素“1”的地址,也就说循环从“1”开始的!

建议你好好的看看有关指针的知识吧!

愿用余生致力编程
2009-10-23 22:18
C语言学徒
Rank: 2
来 自:NamKing
等 级:论坛游民
帖 子:51
专家分:22
注 册:2009-2-27
收藏
得分:2 
楼主考虑一下指针的范围就明白了,第一个for是0到8的,第二个是1到9的,指向数组时输出结果应该是不一样的,你可是试下for(p=number;p<number+11;p++) printf("%d",*p);  你会看到一个不属于数组的数字出现,这就是指针超出了数组的范围照样能显示出数据,所以,你的两个for循环的结果是肯定不一样的。

[ 本帖最后由 C语言学徒 于 2009-10-23 22:37 编辑 ]
2009-10-23 22:36
寻找南方
Rank: 2
等 级:论坛游民
帖 子:57
专家分:75
注 册:2009-10-21
收藏
得分:2 
如果你说你输出的是一样的话!那只有可能是你数组中的元素都是一样的!因为这两个for语句输出的个数是一样的!如果不是像我所说的,那你就看看上面几个高手的解释吧!!!

我一路向前~~~~~~~~~~~~~
2009-10-23 22:54
快速回复:问一个小问题..学过指针的帮下忙啊..
数据加载中...
 
   



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

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