C++ :ps=new node

来源:百度知道 编辑:UC知道 时间:2024/05/13 07:44:40
ps=new node怎么理解?
ps是指向node类型的指针。
急!

new是以动态分配(从堆上分配)方式创建一个对象,并获得指针。

new node 就是在内存堆中创建一个node类型的数据,并获得指针值。

ps = new node 就是内存堆中创建node类型的数据,获得指针,并把指针值赋给指针ps。

之后就可以用ps指针来对这个对象进行各种操作,比如赋值、运算等。

这种动态分配方式与直接声明的变量是有区别的。如果你直接声明,比如:
node s;
那么这个s变量是在系统栈中分配的,在程序结束后,操作系统会自动删掉这个变量。而用new分配的则不同,这种变量是在堆中分配的,在不用时必须程序自己删除,这就要在编程中用到delete,以释放资源。

在c++/c中,每一个指针都必须申请地址才可以使用.
上面这句话的意思就是ps指向一个新建的node类型的地址.
现在申请了一个地址,就可以使用这个指针的.比如假设node类型是int,那么可以使用:(*ps)=1;
假如我们没有上面那句话,就是申请一个地址,那么(*ps)=1;将是违法的,不被编译器通过的.