2 baby00qi baby00qi 于 2016.05.09 15:44 提问

C++的delete问题,初学者不太懂
void purchase(Goods* &f, Goods* &r, int w) //从队尾插入结点
{ 
    Goods* p = new Goods(w);
    p->next = NULL;
    if (f == NULL)  f = r = p;
    else {
        r->next = p;
        r = r->next;
    }
}

void sale(Goods* &f, Goods* &r)
{
    if (f == NULL) {
        cout << "no any goods!\n";
        return;
    }
    Goods* q = f;
    f = f->next;
    delete q;  ** // 上面都没有q=new,为什么这里会冒出来一个delete,难道是因为上一个函数的f吗?**
    q = NULL;
    cout << "saled.\n";
}

3个回答

qq423399099
qq423399099   Ds   Rxr 2016.05.09 15:53
已采纳

你说的没错。
如果f为空,则让f指向新new出来的结点
如果f不为空,则将新的结点插入到队尾
purchase函数,参数使用的是指针的引用传递,会将new出来的结点p带出函数

CSDNXIAOD
CSDNXIAOD   2016.05.09 15:52

这个不太懂!
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

ZGZ1002
ZGZ1002   2016.05.09 21:20

如果f为空,则让f指向新new出来的结点
如果f不为空,则将新的结点插入到队尾
purchase函数,参数使用的是指针的引用传递,会将new出来的结点p带出函数

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
php干货!---初学者必须要知道的事情
php初学者要注意什么?刚做开发应该怎么保证自己的代码不容易报错,怎么才能不让测试老找到问题老被批呢?下来介绍一下办法? 很多初学者进入公司之后,发现很吃力,自己写的代码老出错,老报错让自己很尴尬的同时,还让领导怀疑自己的能力有问题,那么这篇文章将要改变你的命运了! 第一步:变量抑制 很多错误的出现都是因为变量没有定义,那么怎么才能保证自己的变量永远都定义了呢? 其实按照正常的代码逻辑编写
《Java编程技巧1001条》352条:求数x的n次方的方法pow(x,n)
《Java编程技巧1001条》 352条:求数x的n方的方法pow(x,n) 352 Calculating the Result of Xn 352 计算数 x 的 n 次幂 One of the most common mathematical operationsyour programs will perform is to raise a value to a given p
::在c++中的表示含义.
::在c++中表示作用域,和所属关系比如class A{  public:    int test();}int A::test()//表示test是属于A的{ return 0;}类似的还有其他,就不列举了--------------------比如int a;void test (){  int a = ::a;//用全局变量a,给本地变量a赋值}
VIM中文帮助手册
学习VIM的初学者,又不太懂英文,可以试试看
c常用算法合集
c 常用算法合集<br/>我看不太懂
初学者必备Android 开发框架
今天以Android初学者的身份我也试着整理一下Android开发中常用到的一些框架,就当是学习成果,其实多半也是从网上搜的,然后做了一个汇总。那咱就开始吧:   一、AndroidAnnotations 描述:AndroidAnnotations是一个能够让你快速进行Android开发的开源框架,它能让你专注于真正重要的地方。使代码更加精简,使项目更加容易维护,它的目标就是“Fast A
以一个初学者的视角理解回溯问题——简单易懂的N皇后问题解决方案
问题描述:N皇后问题是指在N*N的国际象棋棋盘上放上N个皇后,她们之间互相不能攻击,用回溯算法得出这个问题的所有解。解决思路:1、理解回溯算法:作为五大经典算法,回溯算法的地位之高不言而喻,在面对需要一步一步解决的问题时(例如:下棋、迷宫、最佳调度),它是一种非常通用的解题方法。这种算法概括起来就是一种类似枚举的搜索尝试过程,它的基本思想就是在空间中摸索,遇到不满足约束条件时,回退到之前导致这个结...
彻底搞定c指针
c指针详细介绍c语言指针部分的内容 对着部分不太懂的同学可以好好看看
为什么学习C语言这么久,看的懂代码,做不出题,写不出来项目?
前言我看得懂别人的程序,可是我自己却写不出来,我应该怎么办啊?你了解这些嘛?你只是能从别人书写的代码知道每一步都做些什么吧?你明白别人的解题思路吗?你知道别人为什么要用那样的算法吗?如果你看着题目,你能写出实现同一功能的代码吗?你能知道别人在写这个程序的过程中会遇到什么样的问题吗?你能在看了别人的程序之后写出比他好的代码吗?你能用另一种算法写出实现同一程序的代码吗?你真的能看懂别人的程序吗?好的程
Linux初学者需要掌握的命令
1、显示日期的指令: date 2、显示日历的指令:cal 3、简单好用的计算器:bc 怎么10/100会变成0呢?这是因为bc预设仅输出整数,如果要输出小数点下位数,那么就必须要执行 scale=number ,那个number就是小数点位数,例如: 4、重要的几个热键[Tab],[ctrl]