考虑以下代码段:
#include <iostream>
using namespace std;
class p
{
public:
int* q;
p()
{
q = new int(100);
}
~p(){
delete q;
}
};
static p* p1 = new p();
static p p2;
int main() {
// your code goes here
std::cout << *(p1->q);
std::cout << *(p2.q);
delete p1;
}
Run Code Online (Sandbox Code Playgroud)
p1 和 p2 是静态变量,它们必须存储在静态段中。
由于 p1 是一个指针,那么是否只是存储在静态段中的指针地址,甚至是它指向的对象?
p2 是一个普通的静态对象,但是它包含一个动态分配的成员变量 q,那么 q 是否也存储在静态段中?