呵呵,其实综合上面说的就很清晰了,const int *说明指针指向的是一个常量,int * const ptr说明指针也是常量. 另外书中没有讲的const int p和int const p有没有区别,我方现在VC++的编译器下面是没有区别的.看来,我们只需要单独记忆指针的不同声明就可以了....
const int* ptr ; *号左边的const表示指针不能修改指向位置的值,但指针本身是变量 比如:int a = 2, b = 3;const int* ptr = &a;ptr = 5;//错,值不能改。。ptr = &b;//对,指向可以改。。int* const ptr ; *号右边的const表示指针不能改变其自身的指向,即常指针,固定...
1. const int *ptr = NULL; <=> int const *ptr = NULL; 1) 表示指向符号常量的指针变量,指针变量本身并非const所以可以指向其他变量。 2) const 的作用可以看作是“禁止通过*ptr"来改变被ptr指向的变量的值,但被指向的变量 其本身能否改变需要看其定义。 eg: const int i = 1, int j = 2; ptr ...
)const int const* ptr 的两个const都在*号前面,它们都是修饰指针的(因此是重复的,使用其中一个...
int* :指向 int 的指针 int const * :指向 const int 的指针。 int * const :指向 int 的 const 指针。 int const * const :const 指向 const int 的指针。 const可以在类型的任一侧,如下: const int * == int const * const int * const == int const * const ...
后者则只表示指针指向一个常量对象,这样可以防止使用ptr来修改所指向的值,即,*ptr的值为const,不能被修改,这样可以避免由于无意间修改数据而导致的编程错误。这种可以这样理解:const修饰符离谁近修饰的就是谁,离ptr近说明修饰的指针,那么指针的指向的位置不能改变,离int近说明修饰的是指向的值,那么指向的值就不...
ptr 此时ptr是指向int的指针。加上const后,const修饰并封锁ptr 。即ptr的指向不可改变。
说明const ptr是个常量指针(即ptr不可变)。 继续沿着顺时针螺旋移动。我们遇到了int。 说明ptr是个指向int类型的常量指针。 继续沿着顺时针螺旋移动。我们遇到了const。 说明ptr是个指向整型常量的常量指针! 🌳总结 仅仅对于const来说,如果const关键词出现在左边,比如 ‘const int* p’,他的意思就是指针指向的数...
61.下列说明中 const int* const ptr;ptr应该是A指向整型常量的指针变量B指向整型变量的指针常量 A. 指向整型变量的指针变量 B. 指向整型常量
78.下列说明中 const int* const ptr;ptr应该是A指向整型常量的指针变量B指向整型变量的指针常量C指向整型变量的指针变量D指向整型常量的指针常量