08/08/07 00:52:52
shadow されるのは
1.同一変数名の定義されているブロックの開始部分からなのか
2.それとも同一変数名が宣言された後なのか
というところで 2 で解釈可能では?
ちなみに下記のコードで gcc および Borland C++ Compiler では、警告も無し
// 出力結果は a=2.000000 *p=3 が保障される?
#include<stdio.h>
int main(){
int a=3;
{
int *p=&a;
double a=2.0;
printf("a=%f *p=%d\n", a, *p);
}
return 0;
}