>>826
VC++6.0で確認したが
f(int a){ printf("a:%d", aaa); }
f(int& a){ printf("a:%d", aaa); }
f(int* a){ printf("a:%d", *aaa);}
がいずれも同じコードになった。
全く同じだった。VS.NETは違うんだね。
以下、混合モードから抜粋。
3つとも一緒だったの1つだけ貼る。

push ebp
mov ebp,esp
sub esp,40h
push ebx
push esi
push edi
lea edi,[ebp-40h]
mov ecx,10h
mov eax,0CCCCCCCCh
rep stos dword ptr [edi]
mov eax,dword ptr [ebp+8]
push eax
push offset string "a:%d" (0043d01c)
call printf (00408900)
add esp,8