スレを勃てるまでもないC/C++の質問はここで 25
[隔離病棟]
©2ch.net (467レス)
スレを勃てるまでもないC/C++の質問はここで 25
[隔離病棟]
©2ch.net http://mevius.5ch.net/test/read.cgi/tech/1471100645/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
158: デフォルトの名無しさん [sage] 2017/08/09(水) 00:47:51.09 ID:hEgnFYnk int *p;が逆参照したときにintとして扱えるように int (*p)[10];が逆参照したときに配列として扱えるように (君の言い分だと↑も[10]を勝手に付け足しているように見えるのかもしれないが) 型というものがあって、コンパイラは型を知っているから正しくアクセスできる 同じように void (*p)(int i);としたとき、pはintを引数に取る関数のポインタという「型」になるから その型をもってしてコンパイラは関数を呼び出せる そう考えれば(int i)が付くのも当たり前、それが必要だからそういう文法になっている 「アクセスするときに必要となる情報を型として与えているのだよ」 特にCの場合は「そう見なしてくれ」という意味合いが強い キャストして型を変えれば割とどうとでもなる面白い言語 単なるメモリブロックを配列や構造体と見なしてアクセスしたり こういうことが出来る言語はあまりないので 低レベルでは未だにC系の言語が重宝されている http://mevius.5ch.net/test/read.cgi/tech/1471100645/158
159: デフォルトの名無しさん [sage] 2017/08/09(水) 00:52:32.88 ID:hEgnFYnk ちなみに >>157は間違ってるから気にしなくてよいよ C言語は静的型だから「実際に行かなくても先にあるものが分かる」 というか、先に何があろうが、「型」の示すものがあるものとして扱う だから、病院の型のポインタに君の家のアドレスを入れたら 君の家に病人が殺到してバグる キャストしなければそういう代入は出来ないようになっているがな http://mevius.5ch.net/test/read.cgi/tech/1471100645/159
160: デフォルトの名無しさん [sage] 2017/08/09(水) 01:02:42.02 ID:hEgnFYnk 逆に、C言語は静的型だから、「実際に行ってみても、それが何であるか分からない」 住所に行ってみても、名札も無ければ看板も無いので、それが何なのか分からない そういった情報は全部メタ的に「型」にしかない そして型はコンパイル時のコンパイラしか知らない コンパイル後のコードには型情報は綺麗さっぱり消えてなくなってる C言語はデータになんであるかを示す型情報が無い 実行時にデータから型を取得することはできない なんで、関数ポインタの型にはそれを通して関数を呼び出せるだけの情報が必要 そういうことが出来る文法になってる http://mevius.5ch.net/test/read.cgi/tech/1471100645/160
161: デフォルトの名無しさん [sage] 2017/08/09(水) 01:04:32.68 ID:hEgnFYnk >そして型はコンパイル時のコンパイラしか知らない あとプログラマとね http://mevius.5ch.net/test/read.cgi/tech/1471100645/161
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.027s