FC2ブログ
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
C言語のポインタを使うときの方法
C言語のポインタに関して。

ポインタの宣言は,
int *p;
int **pp;
int ***ppp;
みたいに * を使います。

これを使うときは、

printf("%d\n", *p);
printf("%d\n", **pp);
printf("%d\n", ***ppp);

というように、 * を使って元に戻すわけです。

つまりですね。宣言のときの形を使えば元に戻るわけです。
p は * ひとつで宣言してますよねだからint に戻すには、 *p
pp は * ふたつで宣言してますよねだから int に戻すには、 **pp
ppp は * みっつで宣言してますよねだから int に戻すには、 ***ppp

さて、ここまでのをソースでみてみましょう。
include <stdio.h>

int main(void){

  int i=20;
  int *p;
  int **pp;
  int ***ppp;

  p    = &i;
  pp   = &p;
  ppp  = &pp;

  printf("%d\n", *p);
  printf("%d\n", **pp);
  printf("%d\n", ***ppp);
}


こんな感じですね。

さて、使うときに * を何個付ければ元に戻るかなんですが、もうひとつ別の覚え方があります。

上のソースの例では、
p は i に &が一つ付いた &i です。

pp は &p ですね。
ということは、 i に&が2つついた &&i と同じな訳です。(pは &i ですから)

ppp は &pp です。
ということは、 i に&がt3つついた &&&i と同じな訳です。

つまりもとに 戻すには、 &と同じ数だけ * を付ければいいのです。
スポンサーサイト
コメントを投稿する
Name:
URL:
Comment:

秘密:管理者にだけ表示を許可する
トラックバック
この記事のトラックバックURL
この記事にトラックバックする(FC2ブログユーザー)
ブログ検索

プロフィール

ビンゴ中西
Perlが好きである。
プログラミング言語のほとんどは独学。独学の過程で多くのプログラム仲間にも色々教わりました。

FC2カウンター

カレンダー

10 | 2018/11 | 12
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 -

ブロとも申請フォーム

この人とブロともになる

| ホーム |
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。