Search on the blog

2015年4月21日火曜日

C++のconstの話

 少しトリッキーなconstの話。constキーワードを何処に付けるかによって
  1. constなデータを指すポインタ
  2. データを指すconstなポインタ
  3. constなデータを指すconstなポインタ
という違いが生じる。

百聞は一見に如かずということでコードを。
int main(int argc, char **argv) {

    const int x = 5;
    int y = 10;

    const int *p = &x;    // a pointer that points to a const int variable
    ++p;    // OK
    ++*p;   // NG

    int * const q = &y;  // a const pointer that points to an int variable
    ++q;    // NG
    ++*q;   // OK
    
    const int * const r = &x;   // a const pointer that points to a const int variable
    ++r;    // NG
    ++*r;   // NG

    return 0;
}

0 件のコメント:

コメントを投稿