C++ in Vulkan(1)—— 指向常量指针的常量指针

evocrow
发布于

在学习Vulkan时有如下结构体VkInstanceCreateInfo

其中ppEnabledExtensionNames的类型为const char* const*,其赋值方式如下:

instanceExtensions类型为vector<const char*>,data()返回指向vector的第一个元素的指针,类型为const char**
我们知道
常量指针:const int * p 或 int const * p
指针常量:int * const p
所以const char* const*应该理解为(const char *)const *,即指向常量指针的常量指针

为了更好的理解,使用如下代码进行测试:

编译结果如下:

p1与上述情况相同,将const int** 赋值给 const int * const * ,这是可行的,指针可以赋值给常量指针
p2类型const int * const 是指向常量的指针常量 与vec.data() 指向常量指针的指针类型不一致
p3类型const int ** const p3是指向常量指针的指针常量,无法对指针常量进行赋值

3
评论 1
收藏
  • MR7
    MR7
    欢迎加入Piccolo社区!感谢分享~