マイコンプラス

    二足歩行ロボットの制御やセンサの使い方、ロボットキット、ロボットの大会などについて紹介します

    スポンサーサイト

    上記の広告は1ヶ月以上更新のないブログに表示されています。
    新しい記事を書く事で広告が消せます。
    [ --/--/-- --:-- ] スポンサー広告 | TB(-) | CM(-)

    C言語のポインタについてまとめ

    ポインタの宣言


    char *a;


    とする。間接参照演算子*とは別。

    間接参照演算子*


    char *a;
    について間接参照演算子*を使うとその型は

    aはcharのポインタ
    *aはchar型


    アドレス演算子&


    char a;
    についてアドレス演算子&を使うとその型は

    aはchar型
    &aはcharのポインタ


    ポインタと配列


    宣言の仕方による違い色々

    char a[5];//←配列(要素数5)
    char *b[5];//←ポインタの配列(要素数5)
    char (*c)[5];//←配列(要素数5)へのポインタ
    char (*d[6])[5];//←配列(要素数5)へのポインタの配列(要素数6)



    ポインタと構造体


    以下のような構造体test1、構造体ポインタtest2について考える。

    struct TEST
    {
    char a;
    char b[5];
    char *c;
    char *d[5];
    char (*e)[5];
    char (*f[6])[5];
    };
    struct TEST test1;
    struct TEST *test2;


    それぞれの構造体のメンバへの値アクセスの方法は

    test1.a=10;
    test1.b[0]=10;
    *(test1.c)=10;
    *(test1.d[0])=10;
    *(test1.e)[0]=10;
    *(test1.f[0])[0]=10;

    test2->a=10;
    test2->b[0]=10;
    *(test2->c)=10;
    *(test2->d[0])=10;
    *(test2->e)[0]=10;
    *(test2->f[0])[0]=10;

    [ 2011/04/14 22:54 ] C言語 | TB(0) | CM(0)
    コメントの投稿












    管理者にだけ表示を許可する
    トラックバック
    この記事のトラックバックURL



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