| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1162 人关注过本帖
标题:关于指针自减的问题?
只看楼主 加入收藏
johnzsj
Rank: 2
等 级:论坛游民
帖 子:54
专家分:27
注 册:2017-2-10
结帖率:93.75%
收藏
已结贴  问题点数:20 回复次数:4 
关于指针自减的问题?
请教:我想让指针倒叙输出为什么程序执行的结果是错的:程序如下
#include<stdio.h>

int main()
{
    int *p;
    int a[10],i;
   
    p=a;
   
    printf("please enter 10 integer numbers:");
   
    for(i=0;i<10;i++)
    {
        scanf("%d",p++);
    }
   
    //p=a;
   
    for(i=0;i<10;i++,p--)
    {
    printf("%d",*p);
    }
   
    printf("\n");
   
    return 0;
}

结果:
please enter 10 integer numbers:0 1 2 3 4 5 6 7 8 9
-2987654321
请按任意键继续. . .
搜索更多相关主题的帖子: include numbers please return 
2017-02-20 10:29
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:20 
  scanf("%d",++p);

DO IT YOURSELF !
2017-02-20 10:33
johnzsj
Rank: 2
等 级:论坛游民
帖 子:54
专家分:27
注 册:2017-2-10
收藏
得分:0 
回复 2楼 wp231957
谢谢,我懂了
2017-02-20 11:06
纯帅de肥猪
Rank: 2
等 级:论坛游民
威 望:3
帖 子:9
专家分:10
注 册:2016-3-4
收藏
得分:0 
scanf("%d",p++);在输入9时,p指针的地址还会加1,也就是说现在p指针的地址是a[10]后面的一个字节的地址,所以会出现一个随机值,你在输出的时候,要先执行p--的指令,
    p--;//加在for循环之前即可
     for(i=0;i<10;i++,p--)
    {
    printf("%d",*p);
    }
2017-02-20 12:03
johnzsj
Rank: 2
等 级:论坛游民
帖 子:54
专家分:27
注 册:2017-2-10
收藏
得分:0 
回复 4楼 纯帅de肥猪
也是个办法,我明白了,谢谢
2017-02-20 13:46
快速回复:关于指针自减的问题?
数据加载中...
 
   



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

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