<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
	<title><![CDATA[ No.455 - 電装工芸日記 - 舞台照明機器の製作とか - ]]></title>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi</link>
	<description><![CDATA[ 今年は開発案件を進めたい ]]></description>
	<language>ja</language>
	<copyright>Copyright 2026</copyright>
	<lastBuildDate>Wed, 03 Jun 2026 15:33:11 +0900</lastBuildDate>
	<generator><![CDATA[ <!-- てがろぐ Version: -->Powered by <a href="https://www.nishishi.com/cgi/tegalog/" target="_top">てがろぐ</a> Ver 3.4.0 ]]></generator>
	<!-- BEGIN ENTRIES -->
	<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　オレメモです。 ]]></title>
	<description><![CDATA[ 　オレメモです。<br /><br />● Ｃ言語のポインタ<br /><br />　私の理解ですが、ポインタとは変数の扱い方の一つで、定義した名称ではなくメモリ上のアドレスを指定して変数にアクセスする方法です。<u class="decorationU">変数のアドレス得る方法</u>と、<u class="decorationU">アドレス指定で変数を読み書きする方法</u>の二つを総称したものとなります。<br />　ＯＳやプログラム言語はハードウェアを直視せずに済ませるためにあるのですが、ポインタはその意図に反して原始的なアプローチでメモリに直接アクセスする方法だと言ってもよいようです。<br /><br />　様々な解説では<u class="decorationU">変数のアドレス得る方法</u>と<u class="decorationU">アドレス指定で変数を読み書きする方法</u>、さらにポインタの効能を混在させて説明するので分かりにくいのです。<br />　先達の意図には反しますが、少しアプローチを変えて書いてみようと思います。<br />　ただし、変数とは保存先を表す＜アドレス＞と保存されている＜数値＞で構成されているので、この辺りが頭にイメージ出来ないと以下は理解不能だと思います。<br />　任意のアドレスをユーザが設定することも可能ですが、ＯＳや言語が割り当てるアドレスを使うのが普通。いや、勝手に決めて正常に動くことはまず無いでしょう。<br /><br /><u class="decorationU">変数のアドレスを得る方法</u><br /><br />　変数を定義するなら、<br />　　int data;<br />　などと書けばいい。この段階で保存先のアドレスは決定されています。というか、変数が持つ情報の実体は保存先を表すアドレスです。<br />　この変数のアドレス値を得るなら、<br />　　&data<br />　とすればいい。変数名の前に＜&＞(アンパサンドと読むらしい。アンドではないそうな)を付けて装飾すると変数のアドレスを表します。<br />　単に変数名とすれば中身を読み書き出来、変数名の頭にアンパサンドを付ければ保存先アドレスを読み書き出来るのです。<br /><br />　例えば、変数の中身を表示するなら、<br />　　printf(&quot;変数の中身：%d\n&quot;, data);<br />　アドレスを表示するなら、<br />　　printf(&quot;変数の格納先アドレス：%d\n&quot;, &data);<br />　となります。<br /><br /><u class="decorationU">アドレス指定で変数を読み書きする方法</u><br /><br />　変数のアドレスを保存するための変数はポインタ変数と呼ばれる特殊なものです。<br />　通常変数と違って<br />　　int *addr;<br />　とか<br />　　char *str_addr;<br />　などと定義します。変数の前に＜*＞(アスタリスク)を付けて装飾することでポインタ変数だと宣言します。<br />　アドレスを格納するには＜*＞を付けず、<br />　　addr = &data;<br />　とします。<br /><br />　アドレス指定(ポインタ)で変数を読み出すには、<br />　　num = *addr;<br />　とします。上記に続くなら変数dataの内容が変数numに入ります。<br /><br />　書き込むなら、<br />　　*addr = 10;<br />　となり、変数dataの内容も10になります。何故なら、dataも*addrも同じアドレス(実体)にアクセスするからです。<br /><br />　ポインタの活用方法、動的変数、静的変数なども理解しなければなりませんが、先達の情報以上のことは書けそうありません。<br />　自分ナリの整理は付きましたし、数か月後の自分が再理解できると思うのでここまで。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%ef%bc%a3%e8%a8%80%e8%aa%9e" class="taglink" title="Ｃ言語">#Ｃ言語</a> -- Posted by 電装工芸 〔1307文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=455</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=455</guid>
	<category>tegalog</category>
	<pubDate>Fri, 23 Dec 2022 14:30:09 +0900</pubDate>
</item>

	<!-- END ENTRIES -->
</channel>
</rss>

