迷途指针问题 求大神细解释一下
#include <stdio.h>#include <stdlib.h> //包含malloc函数和free函数的声明
int main()
{
int *p=(int*)malloc(sizeof(int));
long *p1;
*p=1;
printf("将1赋给p指向的空间后,指针p读取到的值:\t\t%d\n",*p);
free(p);
printf("释放内存后,指针p读取到的值:\t\t\t%d\n",*p);
p1=(long*)malloc(sizeof(long));
printf("申请新内存块后,指针p保存的地址:\t\t%p\n",p);\*这里 p和p1的内存地址是一样的怎么回事*\
printf("指向新内存块的指针p1保存的地址:\t\t%p\n",p1);
*p1=0;
*p=2;
printf("将2赋给p指向的空间后,指针p读取到的值:\t\t%d\n",*p);\*这里p和p1的输出值都是2 怎么回事*\
printf("将2赋给p指向的空间后,指针p1读取到的值:\t%ld\n",*p1);
free(p1);
return 0;
}
[ 本帖最后由 孤独一生 于 2014-7-6 19:28 编辑 ]