C++ポインタ(Pointer)の理解(ポインタを指すポインタ、参照を指すポインタ)
1233 ワード
c++におけるポインタは重要な地位を占めており、今後のc++のプログラミングではポインタの使用によく遭遇するが、ポインタはc++の非難であり、プログラマーに多くの苦しみを与える誤りをもたらすことが多い.
ポインタも別のタイプの複合タイプを指していますが、前回のブログでは引用の使用を紹介しましたが、引用も複合タイプです.しかし、ポインタと参照には多くの違いがあります.1つは、ポインタ自体がオブジェクトであり、ポインタに値を割り当ててコピーすることができ、ポインタのライフサイクルでいくつかの異なるオブジェクトを前後して指すことができます.2つ目は、ポインタが定義時に値を割り当てる必要がないことです.もちろん、値が割り当てられていない場合は、不確定な値があります.
ポインタで注意してください.
1.1つの付与文がポインタまたは指向オブジェクトを変更するかを明らかにします.以下のコードでは*ptr=0がptr指向オブジェクトiの値を変更し、指向オブジェクトを変更しません.ptr=&jはptrを変化させ,iは変化しなかった.
ポインタも別のタイプの複合タイプを指していますが、前回のブログでは引用の使用を紹介しましたが、引用も複合タイプです.しかし、ポインタと参照には多くの違いがあります.1つは、ポインタ自体がオブジェクトであり、ポインタに値を割り当ててコピーすることができ、ポインタのライフサイクルでいくつかの異なるオブジェクトを前後して指すことができます.2つ目は、ポインタが定義時に値を割り当てる必要がないことです.もちろん、値が割り当てられていない場合は、不確定な値があります.
ポインタで注意してください.
1.1つの付与文がポインタまたは指向オブジェクトを変更するかを明らかにします.以下のコードでは*ptr=0がptr指向オブジェクトiの値を変更し、指向オブジェクトを変更しません.ptr=&jはptrを変化させ,iは変化しなかった.
#include
using namespace std;
int main()
{
int *ptr;
int i = 99,j=100;
ptr = &i;
cout << *ptr<
2.void* , , , void* 。
3 ,int **ptr1 ;ptr1=&ptr;*ptr1 ptr ,**ptr1 ptr 。
int **ptr1;
ptr1 = &ptr;
cout<
4ポインタへの :int*&r=ptr;rはポインタへの であり、まず(*(&r)、rは であり、 に のタイプはポインタであり、 の は、rが するintポインタを す.int *&r =ptr;
cout << *r <