ポインタ定義に関するいくつかの問題
3786 ワード
constの定数を定義する上での使用問題については、学習のC/C++の過程で、頭が回らないことがよくあります.例えばこのconstの使用.私がint*const a、const int*a、const int*const a、const int*a、int const*aを見たとき、頭が大きくなったのは、自分の基礎のためである一方で、このいくつかの声明が高い一致性を持っているからだ.詳しい比較学習を経て、今日はそれらの違いを以下にリストします.
int*const a//aはポインタ定数であり、aは変更できない.すなわち、aをint*const a=&bに初期化した後、a=&cを初期化することはできないが、aが指す内容は変更できる.そしてaは宣言時に初期化される
int const*a//aは定数ポインタであり、aによってaが指す内容を変更することはできないが、aが指す内容はint b=1など自分で変更することができる.a= &b ;これ以上*a=2を行うことはできません.しかし、b=2であってもよい.
const int* a ; //aは定数ポインタであり、int const*aを制限し、使用する.
const int*a//aは定数ポインタであり、int const*aとの使用を制限し、使用する.
const int*const a//aはポインタ定数で定数のポインタであり、aは変更できず、aによってaが指す内容を変更できず、aは宣言時に初期化される.
詳細は以下のコードを参照してください.
書き終わって、みんなに役に立つことを望んで、ありがとうございます!
int*const a//aはポインタ定数であり、aは変更できない.すなわち、aをint*const a=&bに初期化した後、a=&cを初期化することはできないが、aが指す内容は変更できる.そしてaは宣言時に初期化される
int const*a//aは定数ポインタであり、aによってaが指す内容を変更することはできないが、aが指す内容はint b=1など自分で変更することができる.a= &b ;これ以上*a=2を行うことはできません.しかし、b=2であってもよい.
const int* a ; //aは定数ポインタであり、int const*aを制限し、使用する.
const int*a//aは定数ポインタであり、int const*aとの使用を制限し、使用する.
const int*const a//aはポインタ定数で定数のポインタであり、aは変更できず、aによってaが指す内容を変更できず、aは宣言時に初期化される.
詳細は以下のコードを参照してください.
#include
using namespace std ;
int main()
{
int a = 1 ;
int b = 2 ;
int c = 3 ;
int d = 4 ;
int e = 5 ;
int* const A = &a ;//A
cout<// A = &b ; // , A
// int* const A1 ; //A1 ,
const int* const E = &e ; // E
// const int* const E1 ; // E1 ,
// E = &a ; // E ,
// *E = 6 ; // E E ,
e = 7 ; //E ,
cout<//
int const *B ; //B
B = &b ; // B ,
B = &c ; // B,
//*B = 3 ; // , B b
b = 3 ;
cout<const int *C ; //C
C = &c ; // B,
C = &d ; // C ,
//*C = 4 ; // , C c
c = 4 ;
cout<const int* D ; //C
D = &c ; // B,
D = &e ; // E ,
//*D = 4 ; // , D d
d = 5 ;
cout<return 0 ;
}
書き終わって、みんなに役に立つことを望んで、ありがとうございます!