编译器如何控制内存中变量的保护?是否有与内存中的私有变量相关联的标记位?它是如何工作的?
以下c ++代码的输出是什么?
#include<iostream>
using namespace std;
class IndiaBix
{
int x, y;
public:
IndiaBix(int xx)
{
x = ++xx;
}
~IndiaBix()
{
cout<< x - 1 << " ";
}
void Display()
{
cout<< --x + 1 << " ";
}
};
int main()
{
IndiaBix objBix(5);
objBix.Display();
int *p = (int*) &objBix;
*p = 40;
objBix.Display();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我不明白以下一行::
int *p = (int*) &objBix;//Explicit type cast of a class object to integer pointer type
Run Code Online (Sandbox Code Playgroud) 我试图理解这行代码.有人能帮我吗?它是将结果保存在变量val还是变量val的地址中?
*((int*)(&val) +1)= A*(y) + (B - C)
Run Code Online (Sandbox Code Playgroud)
谢谢