请教一个内存分配问题
请看下边代码:
#include"iostream.h"
#include"iomanip.h"
void main()
{
int i=10;
int *j=&i;
if(!0)
{
int l=20;
int *k=&l;
cout<<&k<<setw(15)<<&l<<endl;
}
cout<<&i<<setw(15)<<&j<<setw(15)<<sizeof(j)<<endl;
}
输出结果为:0x0012FF70 //&k 0x0012FF74 //&l:
0x0012FF7C //&i 0x0012FF78 //&j
请问各位
1:内存的地址如何命名的?地址中的数字和字符各有什么含义?i的地址与其他三个有什么不同?
2:内存中的地址不是连续分布的么?i的赋值应在j前边且连续,l也应在k前边,可结果让我迷惑。。。不知是否与内存赋值方式有关?
3:指针变量在内存中占多少字节(我之前看到很多默认的4字节)?跟它存放的地址类型和大小有关么?
请高手赐教!!