上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

--/--|スポンサー広告||TOP↑
まぁ、あほな記事名ですね。

さて、C言語のポインタといえばC言語では難関とか言われています。
別になんてことはないのですがね。

というわけで、ポインタが分からないといってる人の傾向を分析してみる。
まずは、症状を列挙してみる。

・ポインタってなに、おいしいの?(問題外系)
・ポインタの宣言が分からないよ(Cの宣言理解できない派)
・配列とポインタの区別が付かないよ(配列とポインタのアクセスは等価って知らない派)
・ポインタ変数とポインタ値の区別が付かないよ(ポインタはただの値だと知らない派)
・ダブルポインタわけわかんないよ(再帰表現できない派)
・void *ってなんですか?(汎用ポインタを知らない派)
・&aと&a[0]の区別が付かない (int (*)[10])型とint *型の区別付かないよ派)

に大雑把に分かれるんじゃないですかね?
こうしてみると、ポインタあんまり関係ないですよね。
実際にはほかの部分での理解が不足しているために、それをポインタへ適用したときに混乱してるだけと思う。
思いつく限り、ポインタに直接影響する仕様は以下しかない。

・*演算子はポインタの逆参照を行う。
・&演算子は変数のポインタを得る。
・ポインタへの演算はポインタの型に合わせて行われる。
・[]演算子はp[i]に対して*(p+i)として作用する。
・ポインタ変数の宣言は*で行う。*は型にかかる。(この辺はCの宣言に関する仕様が複雑。Dあたりだと変更されている)

その他、関係するかもしれない仕様

・配列は宣言はあるけど、各要素へのアクセスはポインタを通してしか行えない。
(&演算子とかの例外を除くと配列のシンボルは式中では先頭要素のポインタを返す。)
・配列の要素数はデータ型として保持している。(つまり、コンパイルすると失われる)

まぁ、続きは次回に
スポンサーサイト

09/18|プログラムコメント(0)トラックバック(0)TOP↑
この記事にコメント
名前:
コメントタイトル:
メールアドレス:
URL:
コメント:

パスワード:
管理人だけに表示:
管理者にだけ表示を許可
この記事にトラックバック
プロフィール

G.U.Nex

Author:G.U.Nex
職業:プログラマ
趣味:ゲーム(PC、コンシューマ)、ネットサーフィン、ニコニコ動画視聴、プログラミング、鉄道全般
PHP, C, C++, VB(系), Java, JavaScriptを使える。
最近はRubyにはまってる。

最近の記事
最近のコメント
最近のトラックバック
月別アーカイブ
カテゴリー
ブロとも申請フォーム
ブログ内検索
RSSフィード
リンク
フリーエリア
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。