小白求助 关于指针的引用
#include "iostream"using std::endl;
using std::cout;
using std::cin;
using std::string;
//指针的引用
struct Teacher
{
int age;
string name;
};
void fun(Teacher*& pT)
{
pT->age = 44;
pT->name = "老赵";
}
void main()
{
Teacher* p1 = NULL; //指针p1为空,不能把p1的age 和 name赋值吗?
fun(p1);
cout << p1->age << " " << p1->name << endl;//err出现中断的异常
Teacher* p2 = new Teacher;
fun(p2);
cout << p2->age << " " << p2->name << endl;//运行成功
system("pause");
} 当然不行。简单理一理就好了。
正常来说Teacher*p=t0,t0为一个teacher对象。此时p指向t0,通过p是为t0的age和name赋值
但p指向null,你无法访问空对象的属性 本帖最后由 倒戈卸甲 于 2020-4-17 15:33 编辑
话说回来,你这代码写得太杂乱了,一般来说没必要去引用一个指针,指针与引用二选一使用就行了。
推荐写法,Teacher t1;然后fun函数参数类型使用引用,void fun(Teacher &t);
或者Teacher *t1=new Teacher,然后fun函数的参数传入指针,void fun(Teacher *p) 不过如果你是在练习引用指针这个语法的话,那当然没问题 倒戈卸甲 发表于 2020-4-17 15:35
不过如果你是在练习引用指针这个语法的话,那当然没问题
我在练习指针的引用的这个语法
页:
[1]