首先在C++目前我看到的类型声明方式,该变量的类型都是由最后几个字来确定,前面是定语,修饰词。(有其他不同的欢迎指出,共同学习)
比如:
指针数组:是数组,数组里存的是指针。
数组指针:是指针,指针指向数组。
所以指针常量:首先是常量,然后是一个指针,即是该指针是一个常量,指针的值即地址不会变。
常量指针:首先是指针,指针指向的是常量,该指针所指向的值是个常量。
然后对于类型 const,除了const在类型声明的最左侧的情况,const都修饰它左边的类型,当它在最左边时,修饰右边最近的类型。
指针常量 int a = 1; int b = 2; int* const c = &a; const左边是一个指针,即修饰指针。 c = &b; 此时会报错,c必须是可修改的左值。即c是常量,它是个指针。
常量指针 int a = 1; int b = 2; const int* c = &a; const在最左边,修饰右边最近的int,而不是int*。 //int const* c = &a; 和上面等价 *c=2; 此时会报错,说表达式必须是可修改的左值,即*c是常量。
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/178719.html原文链接:https://javaforall.net
