gpt4 book ai didi

c++ const 指向指针的指针

转载 作者:行者123 更新时间:2023-11-30 04:42:26 24 4
gpt4 key购买 nike

指向常量 int 的指针。我可能会改变指针,但我可能不会改变值:

const int* a;

一个指向 int 的常量指针。我可能不会更改指针,但我可能会更改变量的值:

int* const a;

现在,如果我正在处理指向指针的指针,事情会是什么样子?

int** a;

我如何:

a) 声明一个 const 指针,指向一个非常量指针,指向一个非常量 int

b) 声明一个非常量指针,指向一个指向非常量 int 的 const 指针

c) 声明一个指向 const int 的非常量指针的非常量指针?

最佳答案

a) declare a const pointer to a non-const pointer to a non-const int

int ** const a = nullptr;

请注意,由于上面的指针是 const 限定的,因此必须在声明时对其进行初始化。否则,它不会编译。

b) declare a non-const pointer to a const pointer to a non-const int

int * const *b;   

c) declare a non-const pointer to a non-const pointer to a const int

const int **c;

对于 const 指针,模式是:

T * const ptr; // const pointer to T

对于非 const 指针:

T * ptr; // non-const pointer to T

然后,为最外面的指针选择上面的正确模式,并为最里面的指针(即埋在类型中最深的指针)相应地替换 T:

  • 指向非const int 的非const 指针:T = int *
  • const 指向非const int 的指针:T = int * const
  • 指向 const int 的非 const 指针:T = const int *

关于c++ const 指向指针的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58738419/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com