C++プログラム設計学習ノート:1 CからC++キーワードconstと定数に入る
1171 ワード
1定数の定義
定数を定義するキーワードconst.例:
C++を学んだ後、constを多く使うべきで、defineを少なく使うべきです.constにはタイプチェックがあるからです.
2定数ポインタの定義
constタイプ*ポインタ名=&変数名
例:
定数ポインタと通常ポインタの違いは、定数ポインタで変数を指す内容を変更することはできません.
定数ポインタを非常量ポインタに割り当てることはできませんが、逆にできます.
関数パラメータが定数ポインタの場合、ポインタが指す場所の内容を関数内部で誤って変更することを避けることができます.
コンパイラがこのエラーを発見したのは、strcpyの最初のパラメータタイプがchar*であり、定数ポインタを非常量ポインタに割り当てることができないためです.
3一般参照の定義
通常参照では、参照変数の値を変更できません.
constタイプ&参照変数名=参照変数名
例:
レッスンビデオ
北京大学郭炜/劉家瑛先生、C++プログラム設計課程ビデオ
定数を定義するキーワードconst.例:
const int MAX_VALUE = 23;
const double Pi = 3.14;
const char * SCHOOL_NAME = "Peking University";
C++を学んだ後、constを多く使うべきで、defineを少なく使うべきです.constにはタイプチェックがあるからです.
2定数ポインタの定義
constタイプ*ポインタ名=&変数名
例:
int n, m;
const int * p = & n;
定数ポインタと通常ポインタの違いは、定数ポインタで変数を指す内容を変更することはできません.
* p = 5; //
n = 5; //
p = &m; //
定数ポインタを非常量ポインタに割り当てることはできませんが、逆にできます.
const int * p1;
int * p2;
p1 = p2; //
p2 = p1; //
p2 = (int *)p1; // ,
関数パラメータが定数ポインタの場合、ポインタが指す場所の内容を関数内部で誤って変更することを避けることができます.
void my_print(const char * p)
{
strcpy (p, "this"); //
printf ("%s", p); //
}
コンパイラがこのエラーを発見したのは、strcpyの最初のパラメータタイプがchar*であり、定数ポインタを非常量ポインタに割り当てることができないためです.
3一般参照の定義
通常参照では、参照変数の値を変更できません.
constタイプ&参照変数名=参照変数名
例:
int n;
const int & r = n;
r = 5; //
n = 4; //
レッスンビデオ
北京大学郭炜/劉家瑛先生、C++プログラム設計課程ビデオ