有什么区别:
char * const
and
const char *
有什么区别:
char * const
and
const char *
当前回答
两个规则
如果const在char和*之间,它将影响左边的那个。 如果const不在char和*之间,它将影响最近的一个。
e.g.
Char const *。这是一个指向常量char的指针。 Char * const。这是一个指向char类型的常量指针。
其他回答
这里x基本上是一个字符指针,指向一个常数值 Char * const x是一个字符指针,它是一个常量,但是它指向的位置可以改变。 Const char* Const x是1和2的组合,意味着它是一个指向常量值的常量字符指针。 Const *char x将导致编译器错误。它不能被宣布。 Char const * x等于点1。
经验法则是,如果const是var名称,那么指针将是常量,但指向的位置可以改变,否则指针将指向一个常量位置,指针可以指向另一个位置,但指向的位置内容不能改变。
Const char*是一个指向常量字符的指针 Char * const是一个指向字符的常量指针 Const char* Const是一个指向常量字符的常量指针
第一个是语法错误。也许你指的是两者的区别
const char * mychar
and
char * const mychar
在这种情况下,第一个指针是指向不能更改的数据的指针,第二个指针将始终指向相同的地址。
两个规则
如果const在char和*之间,它将影响左边的那个。 如果const不在char和*之间,它将影响最近的一个。
e.g.
Char const *。这是一个指向常量char的指针。 Char * const。这是一个指向char类型的常量指针。
我想指出,使用int const *(或const int *)不是关于指向const int变量的指针,而是这个变量对于这个特定的指针是const的。
例如:
int var = 10;
int const * _p = &var;
上面的代码可以很好地编译。_p指向一个const变量,尽管var本身不是常量。