[KOCW韓国産業技術大学朴正民教授]Cプログラミング12強


Part 12ポインタとは?


12.1ポインタバー

  • アドレスを格納変数
  • C言語の利点の1つであり、メモリアドレスは各種データ型の変数のアクセスと操作を容易にする
  • メモリアドレス、アレイなどの連続データへのアクセスと処理が容易
  • 動的割り当てにアクセスおよび操作するためのメモリ領域(ヒップホップ領域)
  • ポインタ変数は、4バイトサイズのメモリ領域(関数ポインタと同じ)
  • を割り当てる.

    12.2ポインタ変数の宣言と使用

    int* pointer=NULL;
    자로형 포인터 변수 이름 NULL 포인터 설정
  • データ型:ポインタ変数のデータ型を指定し、データ型の後に*演算子
  • を追加します.
  • ポインタ変数名:格納アドレスを指定する変数の名前
  • NULLポインタ設定:ポインタ変数宣言時にNULL
  • に初期化する.

    12.3 Dポインタ変数の宣言と使用

  • 2 2次元以上のポインタ変数には、データ型の後に数値*演算子
  • が加算されます.
    ex)
    int** p2=NULL; // 2차원
    int*** p3=NULL; // 3차원

    12.4アドレスの加算

  • 資料型はすべて住所があって、住所に対して
  • を加減することができます
    各アドレスに
  • を追加すると、結果はデータ型のサイズに依存します.
  • 文字型アドレスプラス+1は1バイト増加可能、int型アドレスプラス+1は4バイト増加可能、デュアルアドレスプラス+1は8バイト増加可能
  • 12.5関数ポインタ


    関数名は関数の開始アドレスです

  • 関数を実行するには、関数が存在するメモリ領域のアドレスを知る必要があります.これが関数の名前
  • です.

    関数ポインタは、関数の開始アドレスを格納する変数です。

    int (*pointer) (int, int)
    자로형 함수 포인터 이름 인수 자료형 목록
  • データ型:関数を指すデータ型
  • を設定する
  • 関数ポインタ名:関数ポインタの名前を設定します.カッコと*を使用する必要があります.
  • 引数タイプリスト:関数を指す引数タイプリスト
  • Reference
    講座:朴正民、《Cプログラム設計》、韓国工業技術大学、12強
    教材:朴正民、『熱血で話すC言語の本色名授業によるC言語の奇跡』、フリーク(2011)、p 327-364.