| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 297 人关注过本帖
标题:这问题是什么原因?
只看楼主 加入收藏
chen1204019
Rank: 1
来 自:广东
等 级:新手上路
帖 子:93
专家分:0
注 册:2012-12-3
结帖率:90.63%
收藏
已结贴  问题点数:10 回复次数:2 
这问题是什么原因?
看代码
程序代码:
#include  "stdio.h"
void main()
{
    int j,k=1,a[12],*p;
    p=a;
        for(j=0;j<12;j++)
            scanf("%d",p+j);//我想问为什么用p++会出现乱码,不都是p想前移动并指向下一个元素吗?
            for(j=0;j<12;j++)
            {
                printf("%3d",*p++);//为什么这能用p++?
                    if (k%4 == 0)
                        printf("\n");
                    k++;
            }
}
搜索更多相关主题的帖子: 原因 color 
2012-12-16 22:54
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:5 
前面p++了,要回到原来的地方,不然就是乱码


[fly]存在即是合理[/fly]
2012-12-16 23:09
a151141
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:197
专家分:680
注 册:2012-10-19
收藏
得分:5 
可以用p++;就是二楼说的原因,p前面自加后,p已指向a[11];后面又用到时应将p从新指向a[0];
也就是程序加一句p=a;就行了
如下
#include  "stdio.h"
 void main()
 {
     int j,k=1,a[12],*p;
     p=a;
         for(j=0;j<12;j++)
             scanf("%d",p++);//我想问为什么用p++会出现乱码,不都是p想前移动并指向下一个元素吗?
             p=a;
          for(j=0;j<12;j++)
             {
                 printf("%3d",*p++);//为什么这能用p++?
                     if (k%4 == 0)
                         printf("\n");
                     k++;
             }
 }
这就行了,你试试

世界上幸福的事就是抓到一只羊,更幸福的事就是抓到两只羊……
2012-12-16 23:29
快速回复:这问题是什么原因?
数据加载中...
 
   



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

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