C++中以下语句的类型

Pio*_*odo 2 c++ pointers

正确理解这些类型我遇到了麻烦:

对于:

int* j;
int** k;
Run Code Online (Sandbox Code Playgroud)
  1. *j

  2. &j

  3. **j

  4. *&j

  5. *k

  6. &k

  7. **k

  8. *&k

  9. &*k

我的想法:

  1. int** - 双int指针?

  2. 解决了j指针-地址什么类型?(十六进制值)

  3. int***

  4. 指针,指向指针的地址j

  5. int***

  6. 地址为双指针 k

  7. int****

use*_*042 5

如注释中所述,*并且&具有不同的语义,具体取决于它们是出现在声明或语句中:

  1. *j 解除引用 j
  2. &j 取地址 j
  3. **j 双解除引用单个指针(错误)
  4. *&j取消引用地址j(相当于j)
  5. *k取消引用k(产生另一个指针)
  6. &k 取地址 k
  7. **k 双引用双指针(OK)
  8. *&k取消引用地址k(相当于k)
  9. &*k 获取解除引用指针的地址

观看现场演示


注意:

j指针的地址 - 什么是地址类型?(十六进制值)

十六进制值只用作指针通常表示,否则,这些只是数字/值.十六进制不符合类型,它只是一个数字表示.