const int * ,int const * 以及 int * const 的區別

const int * ,int const * 以及 int * const 的區別

const int * p; //保護p內容,常量的 int類型指針p
int const * p; //保護p內容,int類型的 常量指針p
int * const p; //保護p地址,int類型的 指針常量p

const在*的左邊,保護內容
const在*的右邊,保護地址

由於保護地址,所以在初始化的時候就需要給定地址,不然後面沒法修改了。

#include <iostream>
using namespace std;
int main()
{
    int i = 10;
    int j = 20;
    int * const p = &i;//一定要初始化
    p = &j;//p就是一個常量,所以不能給p賦值,此處報錯
    return 0;
}
#include <iostream>
using namespace std;
int main()
{
    const int * p;//未初始化
    int i = 10;
    p = &i;
    *p=20; //此處報錯
    printf(" p = %d \n",*p);
    return 0;
}
#include <iostream>
using namespace std;
int main()
{
    int const  * p;//未初始化
    int i = 10;
    p = &i;
    *p=20; //此處報錯
    printf(" p = %d \n",*p);
    return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章