C语言中地址的问题!~

来源:百度知道 编辑:UC知道 时间:2024/05/19 08:19:26
#include<stdio.h>
main()
{
int *p,i;
p=&i;
i=3;
printf("%o\n",p);
}
是否输出的是i的地址,即指针变量P的值,此地址是否为一个自动分配的地址,在动态存储区?

#include<stdio.h>
main()
{
int *p,i;

p=&i;
printf("%p\n",p); //%o是8进制格式输出,%p是按地址格式输出
}

你说的很对,输出的是i的地址,即指针变量P的值
此地址为一个系统自动分配的地址,在系统的堆栈区,而不是动态存储区

输出的是i的内存地址,这个是在程序运行的时候程序分配给变量i的地址,由于你定义的是指针p,并且把i的地址付给了p,那么输出的时候自然就是变量i的地址喽。地址是程序自动分配给变量i的,不在动态存储区。

输出的是i的地址` (应该是一个随机值 即可以多次不同)

是`一个自动分配的地址,在动态存储区`==也是出现了多次不同的情况

支持楼上两位的

这里不在动态存储区,而是在系统的栈区!!!!!

比如用malloc函数分配的内存才在动态内存池(也叫堆区)

输出的是 以八进制i的地址

此地址是为一个自动分配的地址,在动态存储区。因为对于c来说未指明变量的静动态时,系统自动指定变量为auto

输出的是i的地址``我着输出的是17732

是`一个自动分配的地址,在动态存储区`