在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;
}
网友评论