简述指针常量与常量指针的区别
- 指针常量是指定义了一个指针,这个指针的值只能在定义时初始化,其他地方不能改变。常量指针是指定义了一个指针,这个指针指向一个只读的对象,不能通过常量指针来改变这个对象的值。
- 指针常量强调的是指针的不可改变性,而常量指针强调的是指针对其所指对象的不可改变性。
「注意」:无论是指针常量还是常量指针,其最大的用途就是作为函数的形式参数,保证实参在被调用函数中的不可改变特性。
「注意」:无论是指针常量还是常量指针,其最大的用途就是作为函数的形式参数,保证实参在被调用函数中的不可改变特性。
评论(6)
//const修饰指针:常量指针 -> 特点:指针的指向可以修改,但指针指向的值不可以修改 -> const int * p = &a
//
//const修饰常量:指针常量 -> 特点:指针的指向不可以修改,但指针指向的值可以修改 -> int * const p = &a
//
//const既修饰指针,又修饰常量 -> 特点:指针的指向不可以修改,但指针指向的值也不可以修改 -> const int * const p = &a
常量指针(int *const p=&a):
指针的指向(存放在指针的那个地址)不可以改变,但指针所指对象的值可以改变。
(正确:*p=20 错误:p=&b)
指针常量(const int *p=&a):
指针所指对象的值不可以改变,指针的指向可以改变。
(错误:*p=20 正确:p=&b)
指针常量和常量指针主要看和const的位置,兄弟,你这个说错了,const在前是常量指针,在前是指针常量。
这兄弟写的对的,自己去看《C++ Primer》
写反了
29和25重复了