c++和C语言一样,都有指针,指针通过变量的存储位置访问变量内容并进行修改,与引用不同的是,引用仅仅是给变量取一个别名,并不是一个对象,而指针则是一个对象。

 #include<iostream>
using namespace std;
int main()
{
int i=;
int &temp_i=i;
cout<<i<<endl;
temp_i=;
cout<<i;
}

  上述代码为引用的例子,通过引用,我们为变量i起了一个别名temp_i,对其进行操作就是对i进行操作。

  在指针中,我们同样要用到&符号,不过这里是取址。

#include<iostream>
using namespace std;
int main()
{
int i = ;
int *p = &i; //p中存放变量i的地址
cout<<*p<<endl; //通过解引用访问该对象
*p=;
cout<<i;
}

  我们通过i的地址找到i,并对其进行操作。指针在定义时,必须要进行初始化,否则很容易成为野指针而出现问题,在新标准中,推荐使用nullptr进行初始化指针。

  指针是一个对象,他可以指向一个值的地址,那个值也是一个对象,所以,也会有指向指针的指针,但是没有引用的引用。

 #include<iostream>
using namespace std;
int main()
{
int i = ;
int *p1 = &i;
int **p2 = &p1;
cout<<p1<<endl;
cout<<*p2<<endl;
*p1=;
cout<<i;
}

  上述代码为指针的指针,由于p1是指向i的指针,p2是指针的指针,它指向了p1的存储地址。

  通过运行结果我们可以看出,p1是i的地址,p2解引用后就是p1存放的地址,所以,p2是指向p1的指针。

  另外,既然指针是一个对象,那么就存在指针的引用。

 #include<iostream>
using namespace std;
int main()
{
int i = ;
int *p = &i;
int *&temp = p; //指针的引用
cout<<*temp<<endl;
*temp = ;
cout<<*temp<<endl;
}

  对于指针的引用,他的定义格式是这样的:离定义名称最近的就是该变量的类型,所以,离temp最近的是&,所以,temp是一个引用,&之前是*,所以temp是一个指针的引用,最后,它是int型的。

c++中的指针问题的更多相关文章

  1. 【实战Java高并发程序设计 1】Java中的指针:Unsafe类

    是<实战Java高并发程序设计>第4章的几点. 如果你对技术有着不折不挠的追求,应该还会特别在意incrementAndGet() 方法中compareAndSet()的实现.现在,就让我 ...

  2. c++中this指针的用法

    1. this指针的用处: 一个对象的this指针并不是对象本身的一部分,不会影响sizeof(对象)的结果.this作用域是在类内部,当在类的非静态成员函数中访问类的非静态成员的时候,编译器会自动将 ...

  3. 在c#中使用指针

    如果想在c#中使用指针,首先对项目进行配置:在解决方案资源管理器中右击项目名选择属性(或在项目菜单中选择consoleApplication属性(consoleApplication为项名)),在生成 ...

  4. c中的指针

    一. 指针前奏 1. 指针的重要性 指针是C语言中非常重要的数据类型,如果你说C语言中除了指针,其他你都学得很好,那你干脆说没学过C语言. 2. 小需求 l void change(int  n)函数 ...

  5. 关于Vector中的元素中含有指针成员的情况

    对于容器,当容器的各个元素为类类型,且该类类型中含有指针成员时: 如果类类型的析构函数中包含了对指针变量指向内存的释放操作,则在利用clear()函数删除容器所有元素时,会自动调用类的析构函数,自动实 ...

  6. C++中this指针的用法详解

    转自 http://blog.chinaunix.net/uid-21411227-id-1826942.html 1. this指针的用处: 一个对象的this指针并不是对象本身的一部分,不会影响s ...

  7. C语言中的指针数组

    C语言中的指针数组是什么,像 char *a[]={"ddd","dsidd","lll"}; 这里讲一下注意如果我们使用了a也就是首元素的 ...

  8. 转: 浅谈C/C++中的指针和数组(二)

    转自:http://www.cnblogs.com/dolphin0520/archive/2011/11/09/2242419.html 浅谈C/C++中的指针和数组(二) 前面已经讨论了指针和数组 ...

  9. 转:浅谈C/C++中的指针和数组(一)

    再次读的时候实践了一下代码,结果和原文不一致 error C2372: 'p' : redefinition; different types of indirection 不同类型的间接寻址 /// ...

  10. C++中this指针的用法详解(转)

    原文地址:http://blog.chinaunix.net/uid-21411227-id-1826942.html 1. this指针的用处: 一个对象的this指针并不是对象本身的一部分,不会影 ...

随机推荐

  1. [Adruino]XBEE 无线数据传输实际操作

    双轮小车制作实例代码 引用:http://hi.baidu.com/dlfla84/item/52b89017a6209c5cf1090e9b 双轮小车制作 2009-6-12 初步完成了串口数据缓存 ...

  2. 通用权限管理系统接口文档V4.2 版本之角色管理功能介绍

    角色功能维护界面:可实现添加.修改.删除角色,向角色添加或删除人员,角色具有哪些菜单的管理功能.

  3. 接入淘宝API(PHP版本)

    本文链接! http://www.cnblogs.com/MicroHao/p/4030117.html 遇到的问题一: $req = new WaimaiOrderIndexGetRequest; ...

  4. .NET强制进行即时垃圾回收

    大家知道,.NET控制系统垃圾回收(一种自动回收未使用内存的服务)是自动的. 可有时候需要手动强制进行即时垃圾回收. 代码如下: GC.Collect();

  5. hdu 4039 暴力

    思路:用map将每个字符串与一个数字进行对应,然后暴力统计就好了 #include<cstring> #include<iostream> #include<cstdio ...

  6. About TI CC3000 Wifi

    http://forums.adafruit.com/viewtopic.php?f=22&t=44384http://learn.adafruit.com/adafruit-cc3000-w ...

  7. OpenShare:前所未有的开放性

    客户总是面临一个选择:开放的企业门户产品 vs 封闭的企业门户产品 市场上大多数企业门户产品是自成一体的其实也就是封闭的,他们不能和企业目录集成,不能和Exchange集成,不能和SAP集成,不能和L ...

  8. HTML的FORM的元素

    form是是HTML的一个重要元素. form的常用控件有 单行文本框<input type="text" value="text" name=" ...

  9. 【学习笔记】Xcode常见设置

    一.设置主题和字体大小    二.设置显示代码行号

  10. Mac下github的使用

    新建github账户   新建Repository,如下图:   建立连接github的秘钥 打开mac的shell cd ~ mkdir .ssh cd .ssh ssh-keygen -t rsa ...