[過去ログ] スレ立てるまでもない質問はここで 162匹目 (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
344(3): (スップ Sd33-cT4U) 2022/11/03(木)00:01 ID:SIsEhYbod(1) AAS
「int型やdouble型のような”普通の変数”は、そこに整数や小数の値を収めて示すためのものであり、その置き場所がどこであるかは、取り立てて必要のない限りは意識しなくて済むようにつくられている。一方で、この置き場所を値として収めるための変数がポインタである。
厳密にいうと、普通の変数の場合にも変数が直に示すのは整数や小数の値そのものではなくその置き場所のアドレスである。ただしこのアドレスというのは隠蔽され、プログラム実行時には値のほうが示され、使われる。 一方のポインタ変数では、値の置き場所アドレスの置き場所アドレスが格納される。」
外部リンク:ja.wikipedia.org
ここで普通の変数と言われているのは値型の変数?のことだと思うのですが、本当は値自体を格納していないという説明は他で見たことがありません
このへん詳しく書かれてるサイトや本を教えて頂きたいです
346: (ワッチョイ 4907-gxoH) 2022/11/03(木)00:10 ID:0QCo1mM00(1/13) AAS
>>344
C言語は全部値型だぞ
普通というのはポインタ以外ってことだろ文脈から見て
ローカル変数はだいたいスタックに入ってるからアドレスで管理される
レジスタ変数はレジスタに値そのものが入ってるからアドレスはない
これらはC言語の言語仕様では決まってない処理系依存の仕組みだから入門書には書いてない
特定の処理系のドキュメントを読むんだな
349: (ワッチョイ c1b0-ee5o) 2022/11/03(木)00:30 ID:eFLKzazV0(1) AAS
>>344
示されてるWikipediaの説明は疑問を理解するのに充分なものだと思うけどな
他のサイトや書籍をあたったところで説明は同じようなものかより少量だろう
そもそも自分でも引用しているように変数やポインタの実装は意識しなくてすむようにしてあるし、
変数やポインタを理解することはその内部実装がどうであるかの理解を必要としてない
自分が必要のない方向へがんばってるということを気づくように
それでも理解したいというならサイトや書籍なんかで済ますのではなくアセンブリ言語を1つ習得するのを勧める
簡単だしその習得の過程でメモリやアドレス、値の表現や変数名・シンボルの関係など今の疑問は全部解決すると思う
368(1): (ワッチョイ f902-zNLi) 2022/11/03(木)10:56 ID:gQ2GSpPo0(1/5) AAS
>>344
だいたい、「普通の変数」だろうが「ポインタ変数」だろうが、データ型が何かを表す情報も必要だし、
ただ値そのものが入ってるだけの領域でどうやって変数を識別するんだって話だしな。
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.031s