c++ 学习 之 指针常量 和 常量指针

前言

在 C++ 中,指针常量(constant pointer)和常量指针(pointer to constant)是两种不同类型的指针,它们具有不同的含义和用途。

正文

指针常量(constant pointer):
指针常量是一个指针,其指向的内存地址不能被修改。也就是说,你不能让它指向不同的内存位置,但可以改变指针所指向的内存位置的内容。
指针常量在声明时必须初始化,因为它的指向不会改变。
使用 const 关键字放在指针类型前面来声明指针常量。
示例:

int x = 5;
int y = 10;
const int* ptr = &x; // 声明一个指向常量整数的指针常量
ptr = &y; // 合法,可以改变指向不同的整数,但不能改变指向的整数的值
(*ptr)++; // 不合法,不能修改指向的整数的值

常量指针(pointer to constant):
常量指针是一个指针,它指向的内存地址可以改变,但不能通过它来修改所指向内存位置的内容。也就是说,你可以让它指向不同的内存位置,但不能通过它来修改那些内存位置的值。
声明常量指针时,使用 const 关键字放在指针指向的类型前面。
示例:

int x = 5;
int y = 10;
int* const ptr = &x; // 声明一个常量整数指针
(*ptr)++; // 合法,可以修改指向的整数的值
ptr = &y; // 不合法,不能改变指针指向的地址

要总结区别:

指针常量的指向不能改变,但可以修改所指向内存位置的值。
常量指针的指向可以改变,但不能通过它修改所指向内存位置的值。
根据你的需求,选择合适的类型来声明指针,以确保安全和正确的操作。

你可能感兴趣的:(c++,c++,学习,算法)