void main()
{
int a=5,*p,*c=NULL;
printf("p=%u",p); //OUTPUT p=3839036080
printf("\nc=%u",c); //OUTPUT c=0
}
这里我们没有为p
分配任何地址,为什么它甚至可以打印任何东西? c
已分配NULL
,这意味着它将值存储为0
?
答案 0 :(得分:0)
这里我们没有为p分配任何地址,为什么它甚至可以打印任何东西?
您致电printf()
,因此必须打印某些内容。该变量未初始化,因此它会打印发生在用于保存变量的内存中的任何内容。
并且c被指定为NULL,这意味着它将值存储为0?
是的,NULL
是一个扩展为0
,(char *)0
或同等内容的宏。