ポインタ
コンセプト:
(1)pが値(Pが格納されている)であり、変数のアドレス(メモリアドレスが可変である)ポインタ/アドレス変数です。
pは、変数を指す変数、アドレス(内)を与えました。変数は、pの対象となります。
P(2)* p値は、先の尖っています。
→* pが値、ポイントに変数の値であります
原則
アドレスでのみ示すパラメータの後ろに(1)*、* P
(2)&背後にある唯一の変数を持ちます。Aのアドレスを示すパラメータ&
(割り当ては同じになりますが、結果が間違っているであろう場合)(3)「=」デフォルトで割り当ては、パラメータ設定の同じタイプを許可されています
アドレス(ポインタ)アドレスに割り当て→のみ、(ポインタ)
(変数)の値に割り当てられる(可変)値
定義
定義の基本型ポインタElemtype * elemは。
(ElemType単位コンテンツタイプは、ポインタのポイントです)
C言語は、特定の文字列型ではありません、我々は通常、文字の配列に文字列を入れて
割り当てが定義されている場合:INT * P =&(√)(AS&格納されたp個の初期アドレス)
対応のint * P、P =&;
(すなわち★★★定義INT *ときにベース変数アドレスを割り当てる必要のアドレス、および定義された値の後に* P、割当値に必要であることを理解すべきP)
ポインタpは変数を指していないので、我々はアドレスを割り当てる必要があります
同様のint * pは=;×
値(整数変数)は、アドレス(変数)に割り当てられていません
対応は、* P int型; P = K;(×)
★★★アドレス割り当て&K
int型* P、* qは、= 20;
①* P = A;√ポインタpのアドレス割り当てに
(すべての値は指さ変数に代入* p値が達成されるであろう)
②q= P;√(P / QがQにpの値を達成するためのポインタ、代入文であるため)
③p= Q =&;√(P / Q(アドレスの値)、およびアドレス)
④p= * Q;×P = A;×(Pアドレス、* qは、値)
⑤a= * P; * p = * Q;√(すべての値)
値(ポインタの構造タイプ)
もし特定のデータ型の変数へのポインタの定義
ニレ* P = STU1。
(* PをELEMに相当; p =&STU1;)
(* P).nameのと同等Stu1.name
そしてP→名前と等しい名前構造変数P部材(ノード)(値)を参照
アレイポインタ(すなわち、配列はポインタへのポインタ点の配列で、ポインタが、アレイのベースアドレスに格納されています)
ポインタ変数はアレイの名前に初期化される場合、(第1のアドレスSTRに格納されているP)アレイへのポインタ変数ポイント前記
文字列str [20]、* P; P = STR。
配列の文字値を変更することができます(書き込み可能)
char型のポインタで
char * strの= "私は中国を愛して!"。
または(真ん中のライン限り*任意の位置)
char * strの。STR =「私は中国を愛して!」。
固定された定数文字列(第1の文字列のアドレス、すなわち、最初のアドレス)をポイントは、書き込み可能な読み出し専用ではありません
コマンド入力文字列を作るためのシャアstrのポインタ、文字列がすべて一定で出力されます。(最初の文字を印刷すると、自動的に完全な文字列を出力します)
★文字配列ポインタとポインタの違い
(1)CHAR * P(文字定義ポインタ)
(2)①p=配列名(最初の配列ポインタに割り当てられているアレイアドレス/アドレス)
P =文字列(文字列アドレス/アドレスは、文字ポインタの最初の文字に割り当てられています)
★★★
*(P + N)、P [n]は要素の第(I 1 +)の値であります
異なる★★★C / C ++のポインタ
輸出
printf( "%s" は、P);→出力文字列(文字列は、pによって指さ)
printf( "%dの"、P);→出力ポインタ値p
C ++
出力:
COUT * P→出力文字列(メモリポインタ)
出力ポインタ→COUT pがアドレスに格納されています
関数ポインタ
機能変数へのポインタです。
戻り値の型(*関数ポインタ名)(プリミティブパラメータ)
割り当て:関数名=名への関数ポインタ。
コール:関数ポインタ名(パラメータ);
ポインタ変数は、関数を呼び出すために使用することができます。
コマンドおよび実行される通常の変数関数は、メモリの場合と同様です
メモリ内のアドレスが存在しますので、
最初のコマンドの機能は、例外を起動しません
そして、その開始アドレスは、関数のアドレスと呼ばれています
今は、このアドレスへのポインタを持ちます
このコマンドポインタ格納されたアドレスへの間接的なアクセス、この機能が活性化されると
このポインタは関数ポインタと呼ばれています
「関数ポインタは、」実際に「関数へのポインタ」を意味します
「関数ポインタ」機能のクラスです。どのようなクラスですか?ポインタを返す関数であります
実際には、良いメモリ
「XX機能は、」戻り値は「XX」の関数です。