C言語ポインタ【メモ】

1211 ワード

C言語ポインタ【メモ】

  • ポインタ変数
  • 定義
  • ポインタ変数


    ポインタ変数:メモリに格納されるアドレス自体も変数です.≪一般変数|General Variables|emdw≫:データ自体の値を格納する変数です.

    定義#テイギ#


    C言語は比較的自由な形式の言語であるため、いくつかのポインタコードの中で以下の2つの定義を見ることができると信じていますが、実は彼らは等価です.2つ目の定義は、ポインタの意味がより快適に見えるかどうかです.実はポインタ変数pbと見なすことができて、彼のポインタのタイプはint*です.
    int *pb;
    

    に等しい
    int* pb;
    

    しかし、次のような快適な定義は、次のような状況で別の誤解を引き起こす可能性があります.次はこのようなケースです
    int* pa, pb, pc;
    

    に等しい
    int pb, pc, *pa;
    

    に等しい
    int *pa;
    int pb, pc;
    

    定義は理解できますか.まだ霧の水であれば、次の例に結びつけて理解してみてください.
    int pa = 10;
    int *pb = &pa;
    printf("value pa = %d
    ", pa); printf("value *pb = %d
    ", *pb); printf("value &pa = %d
    ", &pa); printf("value pb = %d
    ", pb); printf("value &pb = %d
    ", &pb); printf("value *&pb = %d
    ", *&pb);

    しゅつりょく
    value pa = 10
    value *pb = 10
    value &pa = 651283788
    value pb = 651283788
    value &pb = 651283776
    value *&pb = 651283788
    

    *pbとpaは等価であり,pb,&pa,&*pbは等価であることがわかる.