C ++のポインタ
C ++のポインタが簡単で楽しい学習。 ポインタを介して、あなたがC ++プログラミング作業のいくつかの実装を簡素化することができ、このような動的メモリ割り当てなどの一部のタスクは、ありますが、何のポインタは法的強制力はありません。 だから、私はポインタが必要である学習、良いC ++プログラマになりたいです。
ご存知のように、各変数はメモリ位置を有しており、各メモリ位置は、オペレータアドレスのアクセスは、メモリ内のアドレスを表すハイフン(&)を、使用することができます定義されています。 出力変数のアドレスを定義する次の例を考えてみます。
#include <iostream> using namespace std; int main () { int var1; char var2[10]; cout << "var1 变量的地址: "; cout << &var1 << endl; cout << "var2 变量的地址: "; cout << &var2 << endl; return 0; }
上記のコードはコンパイルされ、実行されると、次の結果を生成します。
var1 变量的地址: 0xbfebd5c0 var2 变量的地址: 0xbfebd5b6
上記の例として、私たちはどのようなメモリ・アドレスおよびアクセス方法を理解しています。 それでは、ポインタが何であるかを見てみましょう。
ポインタとは何ですか?
ポインタは 、すなわち、メモリ位置の直接アドレス値が他の変数のアドレスである変数です。同様に他の変数または定数は、あなたが他の変数のポインタメモリアドレスを使用する必要があります前に、それが宣言されています。 ポインタ変数宣言の一般的な形式は次のとおりです。
type *var-name;
ここでは、型が基本型へのポインタである、それは有効なC ++データ・タイプでなければなりません、VAR-nameは、ポインタ変数の名前です。アスタリスクを使用するポインタアスタリスク*乗算を宣言するために使用されるのと同じです。 しかし、この文では、アスタリスクがポインタである変数を指定するために使用されます。 以下は、有効なポインタの宣言です:
int *ip; /* 一个整型的指针 */ double *dp; /* 一个 double 型的指针 */ float *fp; /* 一个浮点型的指针 */ char *ch /* 一个字符型的指针 */
すべてのポインタが、整数、浮動小数点、文字列であり、または他のデータ型が同じであるかどうかの値の実際のデータ型は、16進数は、長いメモリアドレスを表しています。 データポインタの異なるタイプの唯一の違いは、ポインタ変数または定数のデータ型です。
C言語でポインタを使用して、++
ときに次のアクション頻繁にポインタを使用します。ポインタ変数使用可能なアドレスの値にアクセスする、ポインタ変数、ポインタに割り当てられた変数のアドレスを定義します。 これは、変数の値を指定オペランドアドレスに配置されて返すように単項*演算子を使用して行われます。 次の例は、これらのアクションに関係します:
#include <iostream> using namespace std; int main () { int var = 20; // 实际变量的声明 int *ip; // 指针变量的声明 ip = &var; // 在指针变量中存储 var 的地址 cout << "Value of var variable: "; cout << var << endl; // 输出在指针变量中存储的地址 cout << "Address stored in ip variable: "; cout << ip << endl; // 访问指针中地址的值 cout << "Value of *ip variable: "; cout << *ip << endl; return 0; }
上記のコードはコンパイルされ、実行されると、次の結果を生成します。
Value of var variable: 20 Address stored in ip variable: 0xbfc601ac Value of *ip variable: 20
C ++のポインタ説明
C ++では、非常に単純ですが、非常に重要であり、多くのポインタ関連する概念があります。 以下のリストは、C ++プログラマは、ポインタに関連付けられているいくつかの重要な概念に注意する必要があります。
概念 | 描述 |
---|---|
C++ Null 指针 | C++ 支持空指针。NULL 指针是一个定义在标准库中的值为零的常量。 |
C++ 指针的算术运算 | 可以对指针进行四种算术运算:++、--、+、- |
C++ 指针 vs 数组 | 指针和数组之间有着密切的关系。 |
C++ 指针数组 | 可以定义用来存储指针的数组。 |
C++ 指向指针的指针 | C++ 允许指向指针的指针。 |
C++ 传递指针给函数 | 通过引用或地址传递参数,使传递的参数在调用函数中被改变。 |
C++ 从函数返回指针 | C++ 允许函数返回指针到局部变量、静态变量和动态内存分配。 |