C言語なら俺に聞け(入門編)Part 61
■ このスレッドは過去ログ倉庫に格納されています
0709デフォルトの名無しさん
2010/03/23(火) 06:05:42a++;
}
void Func01(int &a){
a++;
}
void Func02(int *a){
a++;
}
int main(void){
int n = 0;
Func00(n); printf("%d\n", n);
Func01(n); printf("%d\n", n);
Func02(&n); printf("%d\n", n);
}
このプログラムを実行させる前は「0、1、(不定値)」
と表示されると予想していたのですが、実際は「0、1、1」と表示されます。
nのアドレスをFunc02へ渡して、そのポインタのアドレスをインクリメント(a++)しているので、
可笑しな値が表示されると思ったのですが・・・
関数へ変数のアドレスを渡して、そのアドレスの場所を変えているのに、
なぜ呼び出しもとのアドレスは変わらないのでしょうか?(*a)++の場合は値が変わりますが・・・。
■ このスレッドは過去ログ倉庫に格納されています