99问答网
所有问题
C++ :ps=new node
ps=new node怎么理解?
ps是指向node类型的指针。
急!
举报该问题
推荐答案 2009-10-20
new是以动态分配(从堆上分配)方式创建一个对象,并获得指针。
new node 就是在内存堆中创建一个node类型的数据,并获得指针值。
ps = new node 就是内存堆中创建node类型的数据,获得指针,并把指针值赋给指针ps。
之后就可以用ps指针来对这个对象进行各种操作,比如赋值、运算等。
这种动态分配方式与直接声明的变量是有区别的。如果你直接声明,比如:
node s;
那么这个s变量是在系统栈中分配的,在程序结束后,操作系统会自动删掉这个变量。而用new分配的则不同,这种变量是在堆中分配的,在不用时必须程序自己删除,这就要在编程中用到delete,以释放资源。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://99.wendadaohang.com/zd/Wvvvee7zt.html
其他回答
第1个回答 2009-10-20
在c++/c中,每一个指针都必须申请地址才可以使用.
上面这句话的意思就是ps指向一个新建的node类型的地址.
现在申请了一个地址,就可以使用这个指针的.比如假设node类型是int,那么可以使用:(*ps)=1;
假如我们没有上面那句话,就是申请一个地址,那么(*ps)=1;将是违法的,不被编译器通过的.
相似回答
最近我在学
c++
,遇到这样的语句!
答:
if (Node *p=
new Node
)中的Node *p=new Node作用是 创建Node对象,把对象赋值给p,而Node *p=new Node用到了等号运算符,整个式子的值等于p 例如int i=j=k=1;整个式子的值等于i,即1.所以if(Node *p=new Node)相当于:Node *p=new Node;if(p)...
c++
的结构体问题
答:
node
*next;};node *p; //这里定义指向node类型结构体的指针,一个*就行了 void main(){ p
=new
node;p=p->next; //p->next存储的就是下一结点的地址啊 cout<<p<<endl;} 或者更详细点你看看这个代码:include <iostream.h> struct node { int k;node *next;};node *p,*q; ...
c++
图的根顶点拜托各位了 3Q
答:
Node
*pt[10]; FILE *fp; //新增 void ADD(Node *head) { Node *p,*s; s = head; cout<<"输入图书信息:"<<endl; p
=new
Node; cin.clear(); cin.sync(); cout<<"书名:"; cin.getline(p->book.bookname,20); strcat(p->book.bookname,"...
C++
指针
new
node
答:
new
是
c++
引入类概念使用的 返回指针 c语言里面没有new 由于c++里面混编c语言基本是没啥问题的 所以你才能在c++里看到又有new又没有new的 实际上两者释放的方法也不一样 new用delete释放 定义的那个用free
C++
可能使用了未初始化的本地指针变量P?
答:
inline void
Node::
CreatedListTail(int n) { Node* L
= new
Node;int i;srand(time(0));L->next = nullptr;Node* p;p=L; //p先指向头 for (i = 0; i < n; i++) { p->data = rand() % 100 + 1;p->next = new Node; //挂一个新节点 p=p->next; //p...
s=(
Node
*)
new
(Node);什么意思,怎么运用?
C++
的。求解答。
答:
直接s
=new
Node
就行了,new是动态分配内存运算符,返回一个Node指针指向新分配的内存区。你那个应该是s=(Node*)malloc(sizeof(Node));这样才对。malloc函数动态分配sizeof(Node)字节内存到堆里面,返回void指针,所以必须要强制转换为Node*才能用。这个函数效果和new运算符是一样的,但是new更加简便 ...
用
c++
编写程序
答:
node
* head;public:student():head(NULL){} ~student(void){ clear();} void clear(void){ node* p = head;while(p != NULL){ node* q = p->next;delete p;p = q;} } void create(int n,int m)//插入学生编号和成绩 { node* p
= new
node(n,m);p->next = head;head ...
c++
实现十进制到十六进制的转换
答:
p
=new
node
();p->data=e;p->pNext=*top;top=p;} void Evolve(int N,int d){ int x=N;pLink slink=NULL;if(N==0) //如果转换数值为0 cout<<'0'; //说明无效,输出0 if(d<2) //小于2,无效进制 return ;if(N<0) //如果数值小于0 x=-x; //却绝对值 whi...
c++
程序设计
答:
Node
<Type> *s
=new
Node<Type>(x,last->link); //创建数据节点 并连接 last=last->link=s; ++Size;}template<class Type>void List<Type>::push_front(const Type &x){ Node<Type> *p=new Node<Type>(x,first->link);//创建数据节点 并连接 first->link=p; if(p->link == NULL) last=p;...
大家正在搜
node modules
newnode
node vue
node http
lymph node
c++ new的用法
java的listnode类
返回listnode
listnode用法
相关问题
node *s=new node和s=new node有区别...
Node *p与P=new Node有什么区别?
C++ 指针new node
s=(Node*)new(Node);什么意思,怎么运用?C...
c++中结构体node,然后new node()是什么
c++同学通信录管理系统 程序
first=new Node;first->next=NUL...
C++ 关于用new创建链表的问题