ページビューの合計

イエスから目を離さないでいなさい。(へブル 12:2)

2017-06-28

C言語のポインタは難しい

なぜC言語のポインタは難しいのだろう
int  *a;
と書いたり、
int*  a;
と書いたりして、変数a がポインタだと表す。
int  (*f)();
と書いて、変数f がint型の値を戻り値にする
関数へのポインタだと表す。
このような表現はC言語だけで、他の言語にはない。
こういう表現に違和感を感じる。
変数b の番地を &b と表す。
a = &b;
これは a に b の番地を保存する。
*a の値を表示すると、b の値が表示される。
int k;
int add(int x,int y){return x+y;}
f=add;
k = (*f)(10,20);
とすると、k の値は30となる。
自然界のいろいろな現象で
これを例えるたとえが思い浮かばない。
難しい、難しい