「値による呼び出し」に関する大学のコースの講義ノートから:
void fun(int *ip) { *ip =100; }
によって呼び出された
int n=2; int *np; np = &n; fun(np);
n の値を 100 に変更します。
「int *ip」と言うとき、正確には何を意味するのでしょうか? 整数型のポインタ? もしそうなら、引数として np を指定して fun() を呼び出すと、np は整数ではない n のアドレスを持っているため、エラーが発生するはずではありませんか?
そして、ip の値を 100 に変更します。これは、n がアドレス 100 の「メモリ スロット」にある値を持っているということではないでしょうか。私は何かが欠けていると確信しています。:)