#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
それはどのように機能しますか?