通常像"int * const ptr"在函数的形参中用来表示指针不对指向其它对象;而const int * ptr用来表示*ptr的值不能被改变. 另外出现的一种声明:const int * const ptr=&p,这样的语法又表示什么意思呢?呵呵,其实综合上面说的就很清晰了,const int *说明指针指向的是一个常量,int * const ptr说明指针也是常量. ...
1. const int *ptr = NULL; <=> int const *ptr = NULL; 1) 表示指向符号常量的指针变量,指针变量本身并非const所以可以指向其他变量。 2) const 的作用可以看作是“禁止通过*ptr"来改变被ptr指向的变量的值,但被指向的变量 其本身能否改变需要看其定义。 eg: const int i = 1, int j = 2; ptr ...
int * const ptr const 修饰的是ptr,而不是 int。表示指针本身是一个常量,不能被重新赋值指向其他对象 const int *ptr const 修饰的是 int,而不是 ptr。这表示指针指向的对象是一个常量,即不能通过该指针修改所指向的对象的值 int x = 10; int y = 20; int * const ptr = &x; // 定义一个指向...
const int* ptr ; *号左边的const表示指针不能修改指向位置的值,但指针本身是变量 比如:int a = 2, b = 3;const int* ptr = &a;ptr = 5;//错,值不能改。。ptr = &b;//对,指向可以改。。int* const ptr ; *号右边的const表示指针不能改变其自身的指向,即常指针,固定...
后者则只表示指针指向一个常量对象,这样可以防止使用ptr来修改所指向的值,即,*ptr的值为const,不能被修改,这样可以避免由于无意间修改数据而导致的编程错误。这种可以这样理解:const修饰符离谁近修饰的就是谁,离ptr近说明修饰的指针,那么指针的指向的位置不能改变,离int近说明修饰的是指向的值,那么指向的值就不...
ptr 此时ptr是指向int的指针。加上const后,const修饰并封锁ptr 。即ptr的指向不可改变。
const int *p:指向常量的指针。 #include <iostream> using namespace std; int main() { //const int i = 123; int i = 123; const int *ptr = &i; // 指向一个具体类型的常量 cout << *ptr << endl; //*ptr = 321; // 不可通过ptr来修改i的值 cout << i << endl; cout << "-...
这里的 const shared_ptr<int> &ptr和常规的 const T &p一样,这里的const都是顶层const,也就是说我们不能改变ptr的地址,也不能改变p的值。 常规的内置指针和const有以下组合: constexptr int a = 5; // a定义在函数体之外。 const int *ptr1 = &a; // 指向整型常量 的 指针 int const *ptr2 ...
int const * ptr3 = &var2; *ptr3 = 4; // 报错 5、常量指针 指向常量的常量指针是一个指针,既不能改变它指向的地址,也不能改变保存在该地址的值。 int var3 = 0; int var4 = 0; const int * const ptr4 = &var3; *ptr4 = 1; // 报错 ...
const int MAX_SIZE=100。在这个例子中,MAX_SIZE是一个常量,其值为100,不能被修改。2.指向常量的指针: constc可以修饰指针,使得指针指向的内容不能被修改。比如下面这个代码:const int *ptr=&some_variable; *pstr=42;在这个例子中,pstr是一个指向const定义的指针,这意味着你不能通过pstr来修改它所指向...