タグ

pointerに関するtsupoのブックマーク (2)

  • 【ハウツー】今こそ再考察! C言語ポインタ徹底解説 (1) ポインタと1次元配列の関係 | エンタープライズ | マイコミジャーナル

    C言語は、ポインタが使える言語です。ポインタを使えば、メモリの直接的な操作など、より柔軟なプログラミングが可能です。一方、そのためにはポインタがどのようなメモリ領域を指し示しているか、またポインタ自体が有効なアドレスを保持しているかなどについて十分な理解が必要です。 稿では、C言語のポインタについて、配列との対比に焦点を当てて解説を行います。 *** C言語では、ポインタを配列のように扱うことができます。また、配列名はポインタに変換可能で、別のポインタに代入できます。 まずは1次元の場合について、ポインタと配列の関係を考えてみましょう。 宣言文の記述 いま、ポインタと配列を次のように宣言したとします。 char *p; ← char型へのポインタpを宣言 char a[5]; ← char型を要素とする、要素数5の配列aを宣言 この宣言の結果を図にすると、図1、図2のようになります。 図

    tsupo
    tsupo 2008/04/18
    とりあえず、「アドレス定数」ということばに違和感。CASL 以外では「アドレス定数」って言い方しないんじゃないのかなぁ。ちなみに関数へのポインタは bookey でも使ってます。
  • こんな事も知らずにPGしてたのかil||li _| ̄|○ il||li - NeverKnows

    突然、C++の話になりますが int func1( const char* pChar ); int func2( char* const pChar ); int func3( char* pChar ) const; この3つの関数の違い、説明できます? 俺は今日まで説明できませんでした…PG暦4年だと言うのに(;つД`) で、ちょっと調べてみました。 func1 : pCharが指し示す内容を変更できない。( const ポインタ ) func2 : pCharが指し示す内容は変更できるが、pChar自体は変更できない。 func3 : const 関数として、引数に定数を使用できる。( func3 内でオブジェクトを変化させない ) でも、実際は int func4( const Struct& tStruct ); のように、参照で使われる事が多いみたい。( const 引数 )

    こんな事も知らずにPGしてたのかil||li _| ̄|○ il||li - NeverKnows
    tsupo
    tsupo 2006/04/04
    int func4( const char* const pChar ); なんてのもありますよ。
  • 1