[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 2chのread.cgiへ]
Update time : 06/01 04:04 / Filesize : 158 KB / Number-of Response : 656
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

なぜポインタで引っかかる人が多いのか



1 名前:デフォルトの名無しさん [2010/06/30(水) 10:22:47 ]
なぜポインタで引っかかる人が多いのか

引っかかる人は何に困惑しているのか


232 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 01:41:39 ]
書き方を修正。「$T」じゃなくて「T$」に変えてみた。

・char , int は型である。
・Tが型ならば、T[N]は型である。(Tの配列と解釈する)
・Tが型ならば、T$は型である。(Tへのポインタと解釈する)
・T,U1,U2,…,Umが型ならば、T(U1,U2,…,Um)という記号列は型である。(関数と解釈する)
・宣言方法は「T a;」とする。

233 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 01:46:37 ]
以下、具体例。(長文失礼します)


具体例(カッコは適宜省略)  C言語での表記法
 ↓                ↓
int$ a;          ( int* a; )
(int$)$ a;        ( int** a; )
(int$)[N] a;       ( int* a[N]; )
(int[N])$ a;       ( int (*a)[N]; )

(int(char))$ f;     ( int (*f )(char); )
(int$)(char) f;     ( int* f (char); )
int(char$) f;      ( int f (char*); )
((int(char))$)[N] f;   ( int (*f [N])(char); )
((int(char))$$)[N] f;  ( int (**f [N])(char); )
(((int(char))$)[N])$ f; ( int (*(*f )[N])(char); )

$が入ってないものは>>199
全く同じになるので省略しました。

234 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 02:27:17 ]
>>232の定義に

・Tが型ならば、T[ ]は型である。

をつけ加えると、>>180
>int (*((*func(void))[]))(void)
これも232の形式で書けて

((((int(void))$)[ ])$)(void) func;

となります。
また、T[N]$ と書いたとき、これを(T[N])$と読むことは出来ても
T([N]$)と読むことは出来ないし、T$$とかT$[N]なども同様のことが
言えます。よって、ある程度カッコを省略できて、結局、
次のように表記できます。

((int(void))$[ ]$)(void) func;






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<158KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef