const char * 和char * const 有什么区别?

发布时间 2023-04-21 18:14:55作者: Lumen3ever

前言

今天在写编译原理实验的时候看到一行代码:

const char *string_num = yytext;

其中yytext是一个字符数组。

结论

先给结论:const char*定义的string_num指向yytext数组的第一个单元,不会修改掉yytext的值。

char * const 是定义的东西不能改,但是指向的元素可改。

怎么记?

像这种东西,初学者可能很容易搞混,如何记忆呢?

我们可以从右往左看,const char * a; 表示a是一个指针,它指向一个字符,指向的这个字符不能更改。

char * const a; 表示a是一个常值,这个常值指向一个字符,指向的这个字符可以修改。