博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++ 一些技巧
阅读量:6225 次
发布时间:2019-06-21

本文共 550 字,大约阅读时间需要 1 分钟。

 如果函数对传入的指针参数进行修改,一定要把参数设置为指针的指针或者指针的引用

 

// Delete the first occurrence of the node

// which value equals item in a single linked list

void Delete(Node *head, int item)

{

     if(head->value == item)

          head = NULL ;

}

 

这段代码的问题是,第一个参数是指针类型

head = NULL 修改的实际上是这个指针的一个副本(#add 诚然 这段代码仅为了用于防止野指针,因为仅将传入指针置为NULL,而没有去操作指针,显然丧失了指针的功效)

所以不会对原来的指针产生效果,下面两种方法都可以改正这个错误

 

void Delete(Node **head, int item) //pointer to pointer

{

     if(*head->value == item)

          *head = NULL ;

}

 

void Delete(Node *&head, int item)// pointer to reference

{

     if(head->value == item)

          head = NULL ;

}

转载地址:http://ojjna.baihongyu.com/

你可能感兴趣的文章
Flex父子窗体相互调用
查看>>
AP_应付模组在月结的处理
查看>>
javascript如何判断访问网页的设备及是否支持触屏功能
查看>>
MFC 虚函数与消息映射区别
查看>>
每日一小练——列出全部子集
查看>>
[再寄小读者之数学篇](2014-06-23 Bernstein's inequality)
查看>>
微信公众平台开发(98) UnionID
查看>>
《CLR via C#》读书笔记 之 线程基础
查看>>
Linux中的lo回环接口详细介绍
查看>>
玩转Web之servlet(三)---一张图看懂B/S架构
查看>>
Neutron中的Service类
查看>>
MCU开发之I2C通信
查看>>
angular学习笔记(二十七)-$http(5)-使用$http构建RESTful架构
查看>>
阿里集团2015届校园招聘内推
查看>>
Android 面试精华题目总结
查看>>
SQL函数简述
查看>>
Swift 注释
查看>>
应对Memcached缓存失效,导致高并发查询DB的几种思路
查看>>
PLSQL_性能优化系列14_Oracle High Water Level高水位分析
查看>>
A Game with Colored Balls
查看>>