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;
}