问题描述 一个程序目的是为了操作int数组 ,数组长度用const int max来申请空间保存,其中还申请其他一些变量,通过观察变量的地址发现在内存里总是这样排列的 先是其他变量->‘ ? ’-> 数组 -> const int max。
?这个地方神秘的总是少一个int量 就是4个字节,反复加入其他变量总是在按照上面的样式来的,总是神秘的少了4个字节 这4个字节是干嘛的??谁能帮我解惑!!
代码如下:
#include<iostream>
using namespace std;
int main()
{
//int b[3]={1,2,3};
// const int test = 99;
const int max=10;
// const int text1 = 11;
int a[max];
int *p=a;
int i,j,value1,value2;
int index1=0,index2;
int *p2=&i, *p3=&j, *p4=&value1, *p5=&value2, *p6=&index1, *p7=&index2;
cout<<"Enter the array number:";
for(i=0;i<max;i++)
{
cin>>*(p+i);
}
value1=*p;
value2=*p;
for(i=1;i<max;i++){
if(value1<*(p+i)){
value1=*(p+i);
index1=i;
}
}
for(j=1;j<max;j++){
if(value2>*(p+j)){
value2=*(p+j);
index2=j;
}
}
cout<<value1<<' '<<value2<<endl;
for(i=index1;i>0;i--){
*(p+i)=*(p+i-1);
*(p+i-1)=value1;
}
for(j=index2;j<max-1;j++){
*(p+j)=*(p+j+1);
*(p+j+1)=value2;
}
for(p=a;p<(a+max);p++)
cout<<*p<<' ';
cout<<endl;
cout <<&a<<' '/*<<&text1<<' '*/<<&max<</*' '<<&text<<' '<<&b<<*/' '<<p2<<' '<<p3<<' '<<p4<<' '<<p5<<' '<<p6<<' '<<p7;
cout<<endl;
cout <<*a<<' '/*<<text1<<' '*/<<max<</*' '<<text<<' '<<*b<<*/' '<<*p2<<' '<<*p3<<' '<<*p4<<' '<<*p5<<' '<<*p6<<' '<<*p7;
return 0;
}