C++中指针变量储存的地址值可以直接比较大小吗?

C++中指针变量储存的地址值可以直接比较大小吗?比如下面这个程序,为什么我修改成这样就错了?#include<iomanip>#include<iostream>usin... C++中指针变量储存的地址值可以直接比较大小吗?

比如下面这个程序,为什么我修改成这样就错了?

#include <iomanip>
#include <iostream>
using namespace std;
int main()
{
int a[10],i;
for(i=0;i<10;i++)cin>>a[i];
void pailie(int *p);
pailie(a);
for(i=0;i<10;i++)cout<<a[i]<<setw(8);
return 0;
}
void pailie (int *p)
{
int k;
int *m,*n;
m=p;
for(;m<m+10;m++)
{
for(n=m+1;n<n+9;n++)
{
if(*m<*n){k=*m;*m=*n;*n=k;}
}
}
}
展开
 我来答
WANG110806
2014-06-28 · 超过13用户采纳过TA的回答
知道答主
回答量:20
采纳率:0%
帮助的人:21.6万
展开全部
您好,根据你的程序,我觉得你是对一个整型数组进行排序,排序方法为选择排序,定义的函数pailie()传递的是一个整型指针。
你程序的错误之处在于数组越界,也就是内存引用错误。
第一个for语句,m是变化的,m<m+10;恒成立,应该为m<p+10;
第二个嵌套的for(n=m+1;n<n+9;n++)
当m递增时,n+8回超过数组的边界,解决办法是
for(n=m+1;n<p+10;n++);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友830c3a4
2014-06-28 · 超过22用户采纳过TA的回答
知道答主
回答量:78
采纳率:0%
帮助的人:43.8万
展开全部
#include <iomanip>
#include <iostream>
using namespace std;
int main()
{
int a[10],i;
for(i=0;i<10;i++)cin>>a[i];
void pailie(int *p);
pailie(a);
for(i=0;i<10;i++)cout<<a[i]<<setw(8);
return 0;
}
void pailie (int *p)
{
int k;
for(m=0;m<10;m++)
{
for(n=m;n<10;n++)
{
if(p[m]<p[n]){k=p[m];p[m]=p[n];p[n]=k;}
}
}
}
//内存地址本身也是整形可以比较大小、只是你的m++在内存中是地址后移一位并没有取到数组下一位的地址(int不只是占一位)

- - 好吧,楼上大神正解、、、
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-06-28
展开全部
地址不能比,但是指向的值随便比
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
porker2008
推荐于2016-04-14 · TA获得超过1.4万个赞
知道大有可为答主
回答量:7066
采纳率:62%
帮助的人:1.1亿
展开全部
#include <iomanip>
#include <iostream>
using namespace std;
int main()
{
int a[10], i;
for (i = 0; i < 10; i++)
cin >> a[i];
void pailie(int *p);
pailie(a);
for (i = 0; i < 10; i++)
cout << a[i] << setw(8);
return 0;
}

void pailie(int *p)
{
int k;
int *m, *n;
for (m = p; m < p + 10; m++) // m < m + 10 是永远true的 (不考虑overflow的话)
{
for (n = m + 1; n < p + 10; n++) // 同理
{
if (*m < *n) {
k = *m;
*m = *n;
*n = k;
}
}
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友fb319d295
2014-06-28 · 超过10用户采纳过TA的回答
知道答主
回答量:41
采纳率:0%
帮助的人:22.2万
展开全部
m<m+10;n<n+9;
两个死循环了吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式