类类型* const
,即可以改变指针指向对象里面的内容,但不能改变指针的指向在成员函数中隐含的this指针就如下图,使用对象内部的成员变量或成员函数会默认用this指向,表明该成员变量或成员函数属于该对象的内部成员
面试题:
// 1.下面程序编译运行结果是? A、编译报错 B、运行崩溃 C、正常运行
class A
{
public:
void Print()
{
cout << "Print()" << endl;
}
private:
int _a;
};
int main()
{
A* p = nullptr;
p->Print();
return 0;
}
// 1.下面程序编译运行结果是? A、编译报错 B、运行崩溃 C、正常运行
class A
{
public:
void PrintA()
{
cout<<_a<<endl;
}
private:
int _a;
};
int main()
{
A* p = nullptr;
p->PrintA();
return 0;
}
所以空指针也是可以作为实参传递给形参this的,运行的结果具体看里面函数的实现
C语言下的Stack
typedef int DataType;
typedef struct Stack
{
DataType* array;
int capacity;
int size;
}Stack;
void StackInit(Stack* ps)
{
assert(ps);
ps->array = (DataType*)malloc(sizeof(DataType) * 3);
if (NULL == ps->array)
{
assert