c++指针与引用问题
本来是回答问题的,到这里做个笔记
*&L是指针的引用,实参是个指针。所以L是实参指针的别名,对别名L的修改,等于对实参的修改。
*L是传值,你无法改变传过来的实参指针变量的值
程序代码:
#include<iostream>
using namespace std;
void foo(int*p);
int main()
{
int a=5;
int *b=&a;
printf("%d %d\n",b,*b);
foo(b);
printf("%d %d",b,*b);
}
void foo(int* p)
{
*p=*p+1;
p=p+1;
}
输出为

可以看成指针b没变,指针b保存的值变了
程序代码:
#include<iostream>
using namespace std;
void foo(int*&p);
int main()
{
int a=5;
int *b=&a;
printf("%d %d\n",b,*b);
foo(b);
printf("%d %d",b,*b);
}
void foo(int*& p)
{
*p=*p+1;
p=p+1;
}

指针b和指针b保存的值都变了
下面是复制的。
这种技术很多用在比如定义一个安全删除指针的函数,所谓安全就是,只有当指针为零的时候才执行删除,删除之后,立刻把指针赋值为NULL。
template<typename T>
inline safe_delete(T*& ptr)
{
if (ptr)
{
delete ptr;
ptr = NULL;
}
}
我用qt和vs中都发现定义的指针都是这种安全指针。
指针不为零,不让删。删了,如果再NULL也不行。
c++指针与引用问题的更多相关文章
- [速记]关于指针,引用和递归和解递归——C++
在写基于二叉排序树的查找时,分为三个过程 1.二叉排序树的插入 2.二叉排序树的建立 3.基于二叉排序树的查找 其中第三部可以递归方式实现,也可以用while循环解递归,于是我想也解解第一步的递归,看 ...
- C++指针参数引用
粘个代码占位置,以后有时间把指针函数,函数指针都补上 #include <iostream> using namespace std; void freePtr1(int* p1){ /* ...
- C/C++:提升_指针的指针和指针的引用
C/C++:提升_指针的指针和指针的引用 写在前面 今天在使用指针的时候我发现了一个自己的错误.
- C++_系列自学课程_第_8_课_指针和引用_《C++ Primer 第四版》
C语言最富有迷幻色彩的部分当属指针部分,无论是指针的定义还是指针的意义都可算是C语言中最复杂的内容.指针不但提供给了程序员直接操作硬件部分的操作接口,还提供给了程序员更多灵活的用法.C++继承这一高效 ...
- C++学习笔记 指针与引用
指针与引用 1. 指针 (1) 指针是一个变量(实体),存储的是一个地址,指向内存的一个存储单元,指针可以为空 (2) 指针可以为空,在声明定义时可以不初始化 (3) 指针在初始化之后可以重新指向其 ...
- 数组类型与sizeof与指针的引用
以char类型为例: char a[100]; //a类型为char[100] &a类型为 char (*)[100] *a类型为char char *p = a; ...
- C++ 中指针与引用的区别
指向不同类型的指针的区别在于指针类型可以知道编译器解释某个特定地址(指针指向的地址)中的内存内容及大小,而void*指针则只表示一个内存地址,编译器不能通过该指针所指向对象的类型和大小,因此想要通过v ...
- 详解c++指针的指针和指针的引用
展示一下使用指针的指针和指针的引用修改传递给方法的指针,以便更好的使用它.(这里说的指针的指针不是一个二维数组) 为什么需要使用它们 当我们把一个指针做为参数传一个方法时,其实是把指针的复本传递给了方 ...
- 指针和引用的区别(c/c++)
http://blog.csdn.net/thisispan/article/details/7456169 ★ 相同点: 1. 都是地址的概念: 指针指向一块内存,它的内容是所指内存的地址:引用 ...
随机推荐
- linux压缩解压文件
首先进入文件夹 cd /home/ftp2/1520/web 压缩方法一:压缩web下的888.com网站 zip -r 888.com.zip888.com 压缩方法二:将当前目录下的所有文件和文件 ...
- 使用ssh key的方式建立和git服务器的通信
1.以前大家好像都在用https的方式同git来同步代码,但是到了新公司后,主管说要配ssh key,所以大概了解一下 An SSH key allows you to establish a sec ...
- 个人制作-css+html旋转立方体的制作
源代码: <!DOCTYPE html><html><head> <title></title> <meta charse ...
- SolidWorks的简单介绍及基本用法
写这博客的动机来源于构建之法微信群里面的的一位老师.sw是一个强大的机械设计制图软件,我记得大一的时候学制图学的3d软件是inventor,而后发现sw用起来更方便更高效,于是就自学了sw,由于是自学 ...
- 我关注的一些关于前端的文章(copy)
本文的核心是侧重于HTML/CSS的框架,JS框架或以JS为核心的框架不讨论(比如YUI):多屏已是既定事实,虽然不是所有开发都要考虑自适应,但有自适应功能至少说明了这框架短期内不会被淘汰,所以不带自 ...
- [NOIP2015] 子串(dp)
题目描述 有两个仅包含小写英文字母的字符串 A 和 B.现在要从字符串 A 中取出 k 个互不重叠的非空子串,然后把这 k 个子串按照其在字符串 A 中出现的顺序依次连接起来得到一 个新的字符串,请问 ...
- etl学习系列1——etl工具安装
ETL(Extract-Transform-Load的缩写,即数据抽取.转换.装载的过程),对于企业或行业应用来说,我们经常会遇到各种数据的处理,转换,迁移,所以了解并掌握一种etl工具的使用,必不可 ...
- 第一次在linux上登录博客
这是我第一次在linux操作系统上登录博客,额,虽然是在X-window上面.好吧,是我太激动了. 这意味着我已经步入linux的世界了,虽然中文输入法不太好用,但是我还是写一下我的心情吧. 从去年的 ...
- [BZOJ 3637]Query on a tree VI
偶然看见了这题,觉得自己 QTREE.COT 什么的都没有刷过的真是弱爆了…… 一道思路很巧妙的题,终于是在约大爷的耐心教导下会了,真是太感谢约大爷了. 这题显然是树链剖分,但是链上维护的东西很恶心. ...
- ClownFish:比手写代码还快的通用数据访问层
http://www.cnblogs.com/fish-li/archive/2012/07/17/ClownFish.html 阅读目录 开始 ClownFish是什么? 比手写代码还快的执行速度 ...