是的,const char *
改变了。在 C++11 及以后的版本中,const char *
被重命名为 const char[]
,而在 C++17 中,它又被进一步重命名为 constexpr char[]
。这种变化的原因是为了提高代码的可读性和可维护性,以及解决 const char *
在某些编译器中可能出现的类型推导问题。
在 C++11 之前,const char *
指向的是一个字符指针,它指向一个字符常量。在 C++11 中,为了提高代码的可读性和可维护性,const char *
被重命名为 const char[]
,这意味着它现在是一个指向字符常量的指针,而不是指向一个字符指针。在 C++17 中,为了进一步提高代码的可读性和可维护性,const char[]
被进一步重命名为 constexpr char[]
。
总的来说,这种变化意味着 const char *
已经被 constexpr char[]
取代,const char *
已经被视为过时,应该尽量避免使用。
constexpr char[]
的优点是它提高了代码的可读性和可维护性,同时也可以避免一些编译器在类型推导时可能出现的问题。它也可以用于在编译时生成字符串常量,这对于生成随机字符串等非常有用。
总的来说,const char[]
的出现大大提高了代码的可读性和可维护性,同时也提供了一些新的功能,这使得它成为现代 C++ 编程中不可或缺的一部分。
领取专属 10元无门槛券
手把手带您无忧上云