关于C++中new的用法的一个小问题

来源:百度知道 编辑:UC知道 时间:2024/05/03 05:53:26
请帮我分析下面这个语句
SqList *W=new SqList;
SqList为结构体变量,为什么给指针赋值时没有取地址然后再给他赋值呀
我是初学者,这是怎么回事呀

new返回的就是一个指针,楼主C++基础知识不过关.

new 自动给这个指针分配的SqList那么大的内存

new运算符申请空间,返回申请空间的指针,所以可以直接赋值

不难理解,因为运算符new返回的本身就是新创建的结构体对象的地址

又例如:int *p = new int;
如果系统是在地址0x000389生成的这个整型变量,那么后面一句话本身就返回了地址值0x000389;
楼主也可以考虑尝试这样写:cout << (new int) << endl;
结果会输出一个地址值 ^_^

new 其实是分成两部 第一步,调用operator new[]分配原始内存 和 调用构造函数对其初始化,其返回值就是一个Sqlist对象的指针,所以可以直接赋值到左面的指针W上。