参考リンク
ポインタ
優秀なプログラムになるために、学びのポインタが必要不可欠なスキルです。かなりの程度までのポインタの使用の合理化のプロジェクトを書いて、あなたのプログラムの効率を改善することができます。牛アップポインタ打撃を入れて、今私たちはそれを使用する方法を見て。私たちは、実際には、変数名はメモリアドレスに対応する、の話、および各メモリ位置を定義しました&アクセスメモリアドレス。だから、それへのポインタは何ですか?実際には、ポインタ変数であるが、ここでは変数のストレージのメモリアドレスです。使用します。
数据类型 *变量名; //任何数据类型都可以
のは、プログラムによるケーススタディを見てみましょう:
#include <iostream>
using namespace std; //命名空间
int main()
{
int iVar = 2; //初始化变量
int *iPointVar = NULL; //声明空指针
cout << "输出变量iVar对应的地址:" << &iVar << endl;
iPointVar = &iVar; //变量iPointVar指向iVar的地址,这样它就得到该地址对应的数值
cout << "输出变量iPointVar对应的地址:" << iPointVar << endl;
cout << "输出变量iPointVar对应的数值:" << *iPointVar << endl; //要想访问指针对应的数值,则只需要在指针变量前添加*
getchar();
}
業績
输出变量iVar对应的地址:001BFCB8
输出变量iPointVar对应的地址:001BFCB8
输出变量iPointVar对应的数值:2
上記の手順のプログラムに注釈を付けされているの解釈上、ポインタの基本的かつ実用的な使い方です。以下は、関数の仮パラメータに配列の最初のアドレスを渡して、少し難易度を増加させ、配列内のデータが変更されます。
#include <iostream>
using namespace std;
//声明函数
int changeArrayFun1(int *iTmpAddr, int size);
int main()
{
int iArrayVar1[5] = {0, 1, 2, 3, 4}; //初始化一维数组
int iArrayVar2[2][3] = { 1, 2, 3, 4, 5, 6 }; //初始化二维数组
changeArrayFun1(iArrayVar1, 5);
int *iPointVar = iArrayVar1;
for (int iId = 0; iId < 5; iId++)
{
cout << *iPointVar << " ";
iPointVar++;
}
getchar();
}
int changeArrayFun1(int *iTmpAddr, int size)
{
for (int iId = 0; iId < size; iId++)
{
*iTmpAddr =1;
iTmpAddr++;
}
return 1;
}
業績
1 1 1 1 1
注:ポインタは良いことです、楽しみにしてください。
引用文
これは、引用された直接のポイントに人は二つの名前を持っているということである、白は別の名前の変数であることを言って。私はあなたが言うだろうと確信していることを、ポインタはそれができないのですか?このポインタは固有のものではない。しかし、それは任意のアドレスを指し示すことができ、いつでも変更することができます。参照が異なる場合、初期化時にのみ割り当てることができます。しかし、他の場所を割り当てることはできません。
#include <iostream>
using namespace std;
int main()
{
int iVar1 = 3; //初始化变量
int &iVarSame = iVar1; //初始化引用
cout << "iVarSame = " << iVarSame << " iVar1 = " << iVar1 << endl;
getchar();
}
業績
iVarSame = 3 iVar1 = 3