指向静态成员变量的指针

static 成员变量就像普通的 C / C++变量一样,除了作用域:

  • 它在 class 里面,所以它需要用类名装饰它的名字;
  • 它有可访问性,publicprotectedprivate

因此,如果你可以访问 static 成员变量并正确装饰它,那么你可以像 class 之外的任何正常变量一样指向变量:

class Class {
public:
    static int i;
}; // Class

int Class::i = 1; // Define the value of i (and where it's stored!)

int j = 2;   // Just another global variable

int main() {
    int k = 3; // Local variable

    int *p;

    p = &k;   // Point to k
    *p = 2;   // Modify it
    p = &j;   // Point to j
    *p = 3;   // Modify it
    p = &Class::i; // Point to Class::i
    *p = 4;   // Modify it
} // main()