[C++]1.指针的学习
来源:互联网 发布:sopcast网络电视安卓版 编辑:程序博客网 时间:2024/06/06 20:11
c++中的指针代表的是内存中的一段地址,通过指针可以直接访问内存中的具体的地址。
1.定义
指针的定义格式:
类型 *变量值;int *pint;//eg.声明了一个整型的指针变量;
2.初始化
指针在声明的时候最好进行初始化。初始化的方式如下:
int *pstr=NULL;
NULL是一个在c++标准库中定义为0的指针常量。内存地址中0表示的地址是不可访问的,也就是说对内存地址为0的指针变量进行取值操作时将会出错。
下面是NULL指针常量的一个例子:
#include <iostream>using namespace std;int main(){int *pstr=NULL;cout<<"pstr value is:"<<pstr<<endl;//(1)cout<<"*pstr value is:"<<*pstr<<endl;//(2)}
运行可以看到程序出错,注释语句(2)可以看到代码正常运行输出为:
pstr value is:0
3.取值操作和取址操作
取值操作符是*,取址操作符是&。
如果对着指针变量执行取值操作,比如*pstr,得到的将是pstr指针指向的内存地址保存的值;而对变量执行取址操作,比如&i,得到的将是变量i的地址。
下面通过一个实例来介绍两者的区别:
#include <iostream>using namespace std;int main(){int i=100;int *pstr=&i;cout<<"the value of i is:"<<i<<endl;cout<<"the value of pstr is:"<<pstr<<endl;cout<<"the value of *pstr is:"<<*pstr<<endl;cout<<"the address of i is:"<<&i<<endl;}
可以看到类似的输出:
the value of i is:100the value of pstr is:009AF9E4the value of *pstr is:100the address of i is:009AF9E4
i的值是100;pstr的值是保存i的地址;*pstr对指针变量pstr进行取值操作,得到是pstr指针变量指向的内存地址保存的值;&i表示的是对变量i进行取址操作,得到的是变量i在内存中的保存地址。
4.指针的指针
指针的指针指的是对指针变量执行取址操作,得到的是变量的指针的地址。
例子如下:
int i=10;//声明变量iint *pstr=&i;//获取变量i的地址初始化指针变量pstrint **pstr1=&pstr;//获取指针变量pstr的值初始化指针的指针变量pstr1
5.指针和数组
内存中数组是在一段连续的地址中保存的,指针和数组在某些情况下是可以互换的,所以大多数时候能用指针的地方就能用数组。
声明了一个数组之后,数组名是一个常量,指是数组中第一个值的地址。
指针和数组的操作如下:
int var[3]={100,200,300};int *pvar=var;for(int i=0;i<3;i++){ cout << "Address of var[" << i << "] = "; cout << ptr << endl; cout << "Value of var[" << i << "] = "; cout << *ptr << endl; // 移动到下一个位置 ptr++;}
可以看到类似的输出:
Address of var[0] = 014FFAACValue of var[0] = 100Address of var[1] = 014FFAB0Value of var[1] = 200Address of var[2] = 014FFAB4Value of var[2] = 300
以上,就是对指针的一些基本的学习。只要记住地址是门牌,值是住户就行了,根据地址可以找到住户;由住户可以拿到地址;而邮编就是地址的地址,根据邮编能找到地址,根据地址又能拿到邮编。
0 0
- [C++]1.指针的学习
- C 指针的学习
- C语言-指针的学习
- Objective-c的指针学习
- C语言的指针学习
- c语言学习,指针函数、函数指针、指针的指针、指向指针数组的指针
- c语言学习,指针函数、函数指针、指针的指针、指向指针数组的指针
- C 语言指针,单指针和双指针的学习
- C学习笔记 11 指针的减法
- 强化C语言的指针类型学习
- 【C语言学习】指针的初始化
- 【学习】C++(2)指针的引用
- 每天学习的点滴--c和指针
- 黑马程序员-c语言指针的学习。
- 关于C指针的学习总结
- 学习C指针的心得随笔
- 学习C语言的指针总结
- C语言的指针学习指导
- python中三种特殊数据结构:set集合、堆、双端队列
- pyspark报错: invalid stream header
- 螺旋数阵对角线
- Android最佳的开源库集锦
- 菜鸟笔记之基础语法
- [C++]1.指针的学习
- JFinal Web开发学习(九)首页layui重新构建目录以及首页
- 欢迎使用CSDN-markdown编辑器
- UILocalNotification本地推送
- OpenStack开发源码如何获取及下载
- 猪肉都被绑上了“家族标签”,大数据已波及到农牧业!
- 修改创建jsp模板改为Html5
- 全键输入提示
- MAC MYSQL修改root密码