有什么区别:
char * const
and
const char *
有什么区别:
char * const
and
const char *
当前回答
我记得捷克的一本关于C的书:读声明,你从变量开始向左走。 因此,对于
char * const a;
你可以读成:“a是指向char的常量指针类型的变量”,
char const * a;
你可以读成:“a是一个指向char类型常量变量的指针。我希望这能有所帮助。
奖金:
const char * const a;
您将读取为指向char类型的常量变量的is常量指针。
其他回答
为了避免混淆,总是附加const限定符。
int * mutable_pointer_to_mutable_int;
int const * mutable_pointer_to_constant_int;
int *const constant_pointer_to_mutable_int;
int const *const constant_pointer_to_constant_int;
const总是修改在它之前的东西(在它的左边),除非它是类型声明中的第一个东西,在那里它修改在它之后的东西(在它的右边)。
所以这两个是一样的
int const *i1;
const int *i2;
它们定义指向const int类型的指针。你可以改变i1和i2的点,但你不能改变它们的值。
这样的:
int *const i3 = (int*) 0x12345678;
定义一个指向整数的const指针,并将其初始化为指向内存位置12345678。您可以更改地址12345678处的int值,但不能更改i3所指向的地址。
Char * const和const Char *?
指向一个常数值
Const char * p;// value不能更改
指向值的常量指针
Char * const p;//地址不能更改
指向常量值的常量指针
Const char * Const p;//两者都不能改变。
Const char*是一个指向常量字符的指针 Char * const是一个指向字符的常量指针 Const char* Const是一个指向常量字符的常量指针
我猜你指的是const char *和char * const。
第一个const char *是一个指向常量字符的指针。指针本身是可变的。
第二个,char * const是一个指向字符的常量指针。指针不能改变,但它所指向的字符可以。
然后是const char * const,指针和字符不能改变。