#include<iostream>
using namespace std;
int main()
{
int a[10];
int* p = &a[10];
for (int i = 0; i < 10; i++)
{
cin >> a[i];
}
cout << "数组首地址为" << (int)p << endl;
int max = a[0];
for (int i = 1; i < 10; i++)
{
if (a[i] > max)
{
max = a[i];
}
}
int min = a[0];
for (int i = 1; i < 10; i++)
{
if (a[i] < min)
{
min = a[i];
}
}
cout << "最大数地址为" << (int)&max << "最大数为"<<max<<endl;
cout << "最小数地址为" << (int)&min << "最小数为" << min << endl;
system("pause");
return 0;
}
你创建了一个max变量,使用max变量保存最大值这没问题,但max的内存空间占用是独立于数组,你直接返回max的地址当然和数组关系不大,你可以设置一个index索引位,找到一个max就把index设为i,然后打印&a[i],就是数组中最大数的地址了;或者直接用指针记录数组中最值的位置
int max,*max_p;
//...
max=a[i];
max_p=&a[i];
max是最大值的复制而不是访问了数组中的最大值
你可以
int * max;
*max = a[i];
cout max
来获取最大值内存中的位置
有帮助望采纳