#include <stdio.h>
int main(int argc, char * argv[])
{
int *ip;
printf("%d\n", *ip);
ip=NULL;
if (1)
{
int i=300;
printf("Inside If Block \n");
ip=&i;
printf("*ip=%d----------\n", *ip);
}
//printf("i=%d\n", i); /* Now this will cause an error, i has Block scope, fair enough */
printf("*ip=%d\n", *ip);
return 0;
}
最后一个如何printf()
返回正确的值i
?
是因为即使i
超出范围,内存位置仍然保留该值?它是如何工作的 ?