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

2024年11月18日 20:47
有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两个死循环了吧