What is the difference between char * const and const char *?

前端 未结 19 1128
执笔经年
执笔经年 2020-11-22 03:31

What\'s the difference between:

char * const 

and

const char *
19条回答
  •  盖世英雄少女心
    2020-11-22 03:39

    The difference is that const char * is a pointer to a const char, while char * const is a constant pointer to a char.

    The first, the value being pointed to can't be changed but the pointer can be. The second, the value being pointed at can change but the pointer can't (similar to a reference).

    There is also a

    const char * const
    

    which is a constant pointer to a constant char (so nothing about it can be changed).

    Note:

    The following two forms are equivalent:

    const char *
    

    and

    char const *
    

    The exact reason for this is described in the C++ standard, but it's important to note and avoid the confusion. I know several coding standards that prefer:

    char const
    

    over

    const char
    

    (with or without pointer) so that the placement of the const element is the same as with a pointer const.

提交回复
热议问题