在c++中不建議使用#define進行常量的定義,因為宏定義不存在類型糾錯的功能。
常量指針的概念是不能使用該指針進行指向的值的修改,該指針可以指向其他內容。
int main()
{
int a = 10;
const int *p = &a;
std::cout << "\n" << *p << "\n" << std::endl;
}
int main()
{
int a = 10;
const int *p = &a;
//*p = 10;? p指針無法修改其指向的值
std::cout << "\n" << *p << "\n" << std::endl;
}
int main()
{
int a = 10;
const int *p = &a;
int b = 9;
p = &b;//p指針可以指向其他的實體
std::cout << "\n" << *p << "\n" << std::endl;
}
非常量指針可以初始化常量指針。
int main()
{
int a = 10;
const int *p;
int b = 20;
int *q=&b;
p = q;
std::cout << "\n" << *p << "\n" << *p<<std::endl;
}
//不使用強制轉換,不能把常量指針初始化非常量指針。
int main()
{
int a = 10;
const int *p = &a;
//int *q = p;
std::cout << "\n" << *p << "\n" << *p<<std::endl;
}
使用強制轉換時,常量指針也可以初始化非常量指針。
int main()
{
int a = 10;
const int *p=&a;
int *q;
q = (int *)p;//強制轉換
std::cout << "\n" << *q << "\n" << *q<<std::endl;
}