I.ポインタ配列
1.テーブルポインタの関数パラメータの配列は、実際にあります
sizeof(a) == sizeof(int * );
int a[ ] ⇔ int *a
次の4つの関数プロトタイプは次と同等になります。
- あなたは(あなたがしているN、* AR)合計します。
- あなたは合計(あなたは[AR]、あなたしているn個)。
- int型の合計値(int型*、int型);
- INT和(INT []、INT)。
2.配列変数は、特別なポインタであります
- 配列自体はアドレスを示し、
- INT [10]。
- int型* P =; // &変数を取る必要はありません
- セル配列の発現は可変であり、&アドレスを取得する必要があります。
- [オペレータアレイを作ることができ、ポインタを行うことができ、
P [0]⇔A [0] *演算子は、ポインタを使用することができ、配列を作製することができます。
CONST配列変数はポインタ型であり、したがって、割り当てを変更することはできません。
INT A []⇔CONST INT * B。
II。ポインタ算術
(1)ポインタを追加するために、(+、+ =、 - 、 - =)減算整数;
(2)インクリメントデクリメント(+、 - );
(3)二つのポインタを減算します。
1.日時:
- すなわち、プラスポインタ値プラスのsizeof(ポインタ型)で示されるアドレスへのポインタは、次のセルに移動します。
- ポインタ1 -セル2の方向は、結果の差はないとの間のアドレス差の値である:
(ポインタ1--ポインタ2)/はsizeof(ポインタ型)。
2. * P ++
- Pと呼ばれるデータを除去した後、pは次のセルに移動されます。
- 宇宙ベースの連続運転のアレイ。
- 直接アセンブラ命令に翻訳することができるいくつかのCPUでは、
3.比較ポインタ
- !<、<=、==、>、> =、=ポインタ(メモリアドレスを比較)比較してもよいです。
- 配列のアドレスは直線的に増加します。
4.0住所
- 0アドレスは、典型的には、ランダムアドレスを触れることができません。
- ポインタは0の値を持つべきではありません。
- 通常0アドレスと特別な事を表明:
- 無効な値を返します。
- ポインタは、実際に初期化されていません。
- NULLは、事前に定義されたシンボルのアドレスを表し、0
ポインタ型
- すべてのアドレスためのポイントの種類、すべてのポインタのサイズが同じであるどんなに。
- ポインタは、割り当てのさまざまなタイプを指してお互いに直接ではなく、これは間違った手を使用しないことです。
6.ポインタアクション
- 引数として渡されたときには、大規模なトランザクションが必要です。
- 操作を行うための配列の配列を通過した後、
- 関数の戻り以上1件の結果より、
- 複数の変数の関数を変更する必要があります。
- ダイナミックアプリケーションメモリ。
私の手書きのメモ
MOOCコード
生じている問題
1. *のp ++の意味
解像度:* +と次のPポジション後に取り出した値Pのレベル以下の単項。