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

2024-11-18 20:47:18
推荐回答(5个)
回答1:

您好,根据你的程序,我觉得你是对一个整型数组进行排序,排序方法为选择排序,定义的函数pailie()传递的是一个整型指针。
你程序的错误之处在于数组越界,也就是内存引用错误。
第一个for语句,m是变化的,m第二个嵌套的for(n=m+1;n当m递增时,n+8回超过数组的边界,解决办法是
for(n=m+1;n

回答2:

#include
#include
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< return 0;
}
void pailie (int *p)
{
int k;
for(m=0;m<10;m++)
{
for(n=m;n<10;n++)
{
if(p[m] }
}
}
//内存地址本身也是整形可以比较大小、只是你的m++在内存中是地址后移一位并没有取到数组下一位的地址(int不只是占一位)

- - 好吧,楼上大神正解、、、

回答3:

地址不能比,但是指向的值随便比

回答4:

#include 
#include 
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;
}
}
}
}

回答5:

m两个死循环了吧