C -> アロー演算子 新しいページはコチラ
提供: yonewiki
1行: | 1行: | ||
+ | [[C PlusPlus#Cにもあった技術|C++]]へ戻る | ||
+ | |||
+ | |||
<table class="mbox-small" style="border:1px solid #aaa; background-color:#f9f9f9; width:22em;" id="RealTitleBanner"> | <table class="mbox-small" style="border:1px solid #aaa; background-color:#f9f9f9; width:22em;" id="RealTitleBanner"> | ||
<tr> | <tr> | ||
8行: | 11行: | ||
[[C PlusPlus|C++]]でも同様です。[[C PlusPlus|C++]]だけの機能がある場合は明記します。<br /> | [[C PlusPlus|C++]]でも同様です。[[C PlusPlus|C++]]だけの機能がある場合は明記します。<br /> | ||
<br /> | <br /> | ||
+ | == '''アロー演算子''' == | ||
+ | |||
アロー演算子"->"は、クラスのメンバ変数やメンバ関数、構造体のメンバ変数を記述する際、<br /> | アロー演算子"->"は、クラスのメンバ変数やメンバ関数、構造体のメンバ変数を記述する際、<br /> | ||
クラス変数や、構造体変数のポインタを使って、例えば、pというポインタ変数を使ってnというメンバ変数を指定する場合、<br /> | クラス変数や、構造体変数のポインタを使って、例えば、pというポインタ変数を使ってnというメンバ変数を指定する場合、<br /> | ||
25行: | 30行: | ||
ポインタ変数を宣言するときは (型名 *P) って書くのでした。<br /> | ポインタ変数を宣言するときは (型名 *P) って書くのでした。<br /> | ||
ポインタではない、型名で宣言した変数 f に対して、アドレスを取得するときは &f みたいに "&" アドレス演算子をつけるんだ。<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 /> | <br /> | ||
− | [[C PlusPlus|C++]]へ戻る | + | |
+ | |||
+ | [[C PlusPlus#Cにもあった技術|C++]]へ戻る |