标题:[求助]指针遍历数组的问题
只看楼主
xialup
Rank: 1
等 级:新手上路
帖 子:84
专家分:0
注 册:2006-3-20
 问题点数:0 回复次数:10 
[求助]指针遍历数组的问题

#include <iostream>
#include <stdlib.h>
#include"stdio.h"

using namespace std;

int main( int argc, int *argv[])
{
int a[5]={1,2,2,3};
int *p=a;
int *q=a+5;
while (p!=q)
cout<<(*q)++<<endl;
system("PAUSE");
return 0;
}
输出怎么全是地址?

搜索更多相关主题的帖子: 遍历 指针 int include 
2006-04-25 13:05
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
得分:0 
#include <iostream.h>
void main( )
{
int a[5]={1,2,2,3};
// int *p=a;
// int *q=a+5;
for(int*p=a,int *q=a+5;p<q;p++)
{
cout<<*p<<endl;
}
}

嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-04-25 13:13
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
得分:0 
cout<<(*q)++<<endl;
不要输出p吗
怎么输出q
cout<<*p++<<endl;
你那样就是个死循环啊
而且不是地址
是非法区间内的随机数

#include <iostream>
#include <stdlib.h>
#include"stdio.h"

using namespace std;

int main( int argc, int *argv[])
{
int a[5]={1,2,2,3};
int *p=a;
int *q=a+5;
while (p!=q)
cout<<(*p)++<<endl;//cout<<*p++<<endl;这里错了,你没有把他地址改变而让他一直加下去,而且是个死循环
system("PAUSE");
return 0;
}


嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-04-25 13:21
xialup
Rank: 1
等 级:新手上路
帖 子:84
专家分:0
注 册:2006-3-20
得分:0 

又学习
谢谢了~


2006-04-25 13:23
xialup
Rank: 1
等 级:新手上路
帖 子:84
专家分:0
注 册:2006-3-20
得分:0 

真是晕倒呢`~看来学习是马虎不得的呢~~


2006-04-25 13:30
热情依然
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:715
专家分:0
注 册:2005-4-5
得分:0 
就算是这样都有问题,因为你的数组只有四个元素,你遍历的时候却写了 *q=a+5,最后肯定会出负的数字

c++/C + 汇编 = 天下无敌
2006-04-25 17:19
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
得分:0 
最后一个不写默认是0
斑竹真是大意呀

嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-04-26 08:42
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
得分:0 
呵呵,只是把括号去掉就可以了,(*p)++改成*p++;

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-04-29 12:28
xialup
Rank: 1
等 级:新手上路
帖 子:84
专家分:0
注 册:2006-3-20
得分:0 

呵呵^多余的刮号 加不加都是一样`~


2006-04-29 12:30
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
得分:0 
不对了
cout<<(*p)++<<endl;//cout<<*p++<<endl;这里错了,你没有把他地址改变而让他一直加下去,而且是个死循环(p!=q )

你没试过吗??

嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-04-29 12:38



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-59995-1-1.html




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

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