| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 791 人关注过本帖
标题:指针变量一道题 帮忙分析
只看楼主 加入收藏
gbs121
Rank: 1
等 级:新手上路
帖 子:11
专家分:1
注 册:2011-3-7
结帖率:0
收藏
已结贴  问题点数:20 回复次数:11 
指针变量一道题 帮忙分析
void main()
{int a[5],i,*p;
p=a;
for(i=0;i<5;i++)
scanf("%d",p++;
for(i=0,p=a; i<5;i++,p++)
printf("%d",p[i]);
}

结果是 输入 1 2 3 4 5  结果1353440  为什么不是 12345   是不是不能使用p[i]表示数组元素啊     
注:上述p++少半个括号, 如何在发表主题时打字时不用改写状态而是正常的输入状态啊  就是WORD那种形式
搜索更多相关主题的帖子: void 
2012-02-10 08:48
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:3 
天上括号吧, 编译要通过撒。
for(i=0,p=a; i<5;i++,p++)里的p++去掉。
上述p++少半个括号, 如何在发表主题时打字时不用改写状态而是正常的输入状态啊  这句没明白你想说神马.

梅尚程荀
马谭杨奚







                                                       
2012-02-10 09:05
gbs121
Rank: 1
等 级:新手上路
帖 子:11
专家分:1
注 册:2011-3-7
收藏
得分:0 
就是类似WORD中的改写状态   新打出的字不是插入在原位置  而是替换原字   发主题的时候也这样  怎么改下
2012-02-10 09:17
gbs121
Rank: 1
等 级:新手上路
帖 子:11
专家分:1
注 册:2011-3-7
收藏
得分:0 
谢谢  明白了
2012-02-10 09:20
hnuhsg1226
Rank: 9Rank: 9Rank: 9
来 自:中国
等 级:蜘蛛侠
威 望:2
帖 子:314
专家分:1314
注 册:2011-3-27
收藏
得分:3 
因为你输入用的是scanf("%d",),你想想,如果你输入"12345",是不是这算一个整数,要等你键入回车才算一次输入完毕,若你输入“1 2 3 4 5”,那是scanf遇到空格则一次输入完毕。回去看看scanf的用法

我的地盘
2012-02-10 09:25
C天下
Rank: 1
等 级:新手上路
帖 子:5
专家分:3
注 册:2012-2-10
收藏
得分:3 
#include <stdio.h>

#define MAXNUMBER 5

int main()
{
   /* int a[MAXNUMBER],*p;
    printf("Input the five number:\n");
    for(p = a;p < a + MAXNUMBER;p++)
       scanf("%d",p);
    for(p = a;p < a + MAXNUMBER;p++)
    printf("%d ",*p);
    return 0;*/
    int a[MAXNUMBER],i,*p;
    p=a;
    printf("Input the five number:\n");
    for(i=0;i<MAXNUMBER;i++)
       scanf("%d",&p[i]);
    for(i=0;i<MAXNUMBER;i++)
       printf("%d ",p[i]);
    return 0;
}
2012-02-10 10:30
小赵q1
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:492
专家分:777
注 册:2011-8-26
收藏
得分:3 
回复 3楼 gbs121
那是因为你按下了键盘上的“insert”键了,它的状态就改成了替换了,想要插入就再按下那个键。
2012-02-10 10:48
小赵q1
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:492
专家分:777
注 册:2011-8-26
收藏
得分:0 
这样也可以达到效果的:
我也是新手,谦虚一下:
#include<stdio.h>
void main()
{int a[5],i,*p;
p=a;
for(i=0;i<5;i++)
scanf("%d",p++);
for(i=0,p=a;i<5;i++,p++)
printf("%d",*p);
}
2012-02-10 10:56
爱德华
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:183
专家分:536
注 册:2011-5-29
收藏
得分:3 
for(i=0,p=a; i<5;i++,p++)   把p++去掉,指针这一章再去好好看看.
printf("%d",p[i]);    最后输去几个数之间也不可能有空格的.格式输出好好看看.


算法,数据结构,windows核心编程.
2012-02-13 01:07
小赵q1
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:492
专家分:777
注 册:2011-8-26
收藏
得分:0 
回复 9楼 爱德华
如果使用p[i]的话就要把那个p++去掉,如果是使用*p的话去掉p++是不能达到效果的;
2012-02-13 18:09
快速回复:指针变量一道题 帮忙分析
数据加载中...
 
   



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

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