C -> アロー演算子 新しいページはコチラ

提供: yonewiki
移動: 案内, 検索
(ページの作成:「{{記事名の制約|title=C -> アロー演算子|disablerealtitle=yes}}」)
 
 
1行: 1行:
{{記事名の制約|title=C -> アロー演算子|disablerealtitle=yes}}
+
[[C PlusPlus#Cにもあった技術|C++]]へ戻る
 +
 
 +
 
 +
<table class="mbox-small" style="border:1px solid #aaa; background-color:#f9f9f9; width:22em;" id="RealTitleBanner">
 +
<tr>
 +
<td style="width:1px;"></td>
 +
<td class="mbox-text plainlist" style="">本来の表記は「<b><span id="RealTitle" style="font-size:large;">C -> アロー演算子</span></b>」です。この記事に付けられた題名は{{記事名の制約}}から不正確なものとなっています。</td>
 +
</tr>
 +
</table>
 +
※このページではC言語にも存在していたという意味で記事タイトルが<nowiki>C -> アロー演算子</nowiki>になっていますが、<br />
 +
[[C PlusPlus|C++]]でも同様です。[[C PlusPlus|C++]]だけの機能がある場合は明記します。<br />
 +
<br />
 +
== '''アロー演算子''' ==
 +
 
 +
アロー演算子"->"は、クラスのメンバ変数やメンバ関数、構造体のメンバ変数を記述する際、<br />
 +
クラス変数や、構造体変数のポインタを使って、例えば、pというポインタ変数を使ってnというメンバ変数を指定する場合、<br />
 +
 
 +
<syntaxhighlight lang="cpp">
 +
(*p).n;
 +
</syntaxhighlight>
 +
 
 +
と記述しますが、アロー演算子を使うことにより
 +
 
 +
<syntaxhighlight lang="cpp">
 +
p->n;
 +
</syntaxhighlight>
 +
 
 +
と置き換えることが出来ます。アロー演算子を使った表記が流行していますので、もはや、もともとの記述の方がよくわからないという印象もあるのかもしれません。<br />
 +
ポインタ p に対して *p って書くとアドレスの中身を返してくれるものだったことは、忘れちゃいけないよ。<br />
 +
ポインタ変数を宣言するときは (型名 *P) って書くのでした。<br />
 +
ポインタではない、型名で宣言した変数 f に対して、アドレスを取得するときは &f みたいに "&" アドレス演算子をつけるんだ。<br />
 +
 
 +
 
 +
pが配列ならカッコが必要になります。p + i (配列番号 i)だとしたら
 +
<syntaxhighlight lang="cpp">
 +
(*(p + i)).n;
 +
(p + i)->n
 +
</syntaxhighlight>
 +
カッコがなければメンバ名がiという変数にぶら下がっているとも判断できるので、仕方ないですね。カッコがないとコンパイルエラーになるはずです。
 +
 
 +
 
 +
添え字番号に[]を使うと
 +
<syntaxhighlight lang="cpp">
 +
(p[i]).n;
 +
(&p[i])->n
 +
</syntaxhighlight>
 +
となるでしょう。
 +
<br />
 +
 
 +
 
 +
[[C PlusPlus#Cにもあった技術|C++]]へ戻る

2017年5月29日 (月) 00:00時点における最新版



個人用ツール
名前空間

変種
操作
案内
ツールボックス