C++指针笔记
什么是指针:
指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。通过指针我们可以直接对内存进行操作。
什么是地址:
比如你要给你朋友寄快递,在寄东西的时候是不是要填写地址,通过地址你的东西才能送到朋友手里。同理,比如你定义一个变量为i。
而这个变量i是存在计算机内存中的,也就是i在这个内存中的编号,即地址。
举例:
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int a ; //定义了一个整型变量 a
int *p ; //定义了一个整型指针p, *代表变量P是一个指针
p=&a; //将变量a的地址取出 在赋给变量P 这样P保存的内存地址就是a的地址 &符号是取地址符
cout << "变量a地址:"<< &a << endl;
cout << "指针p地址:" << p << endl;
cin.get();
return 0;
}
图解:

可以发现指向的地址是一样的
空指针!:
指针是用来保存内存地址的变量,如果我们不初始化,该指针就是一个失控指针,它可以指向内存中的任何地址。所以记得要初始化。
一般定义的时候初始化都是为0。
int *p ;
p=0; //为0 /*
下一句的写法就是上一句合并的写法 一般写法上按照下一句写法
*/ int *p=0; //初始化为0
用指针来访问存储值:
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int love = 520; //定义一个int类型变量love 初始化值为520
int *gril = 0; //定义一个int指针gril 初始化值为 0
gril = &love; //用指针变量gril来保存变量love的地址
cout << "gril值:" << *gril << endl; //输出为520
cin.get();
return 0;
}

其中 cout << "gril值:" << *gril << endl;
这里*gril因为保存的是love变量的地址,因此输出520
容易错误的笔记:
对于指针,最容易混淆的概念是:指针内存地址和指针地址值!!!
搞的我脑壳有点晕了 笔记暂时做到这了。。。。。
C++指针笔记的更多相关文章
- C指针笔记
指针的学习 两个数比较大小,通过传递内容进行比较 #include <stdio.h> void swap(int *p1, int *p2){ int temp; //注意指变量*的两个 ...
- c指针 --笔记2返回指针值的函数
返回指针值的函数 一般带回指针值的函数,定义形式为: int *a (int x, int y); 看这个经典案例: #include <stdio.h> int main(int arg ...
- c语言指针笔记
一.int a[20]1. 数组名代表数组首元素的地址,不代表数组的地址2. 对数组名取地址代表整个数组的地址.a和&a代表的数据类型不一样 a代表数组首元素的地址 &a数组类型 in ...
- C语言中的指针笔记
C语言指针 得到变量的地址 可以使用&运算符找到变量保存在内存中的位置 int x = 1; printf("x的内存地址是"%p\n",&x) %p格式 ...
- C语言指针笔记01
int num = 90; 定义一个整型变量num int* ptr = # 定义一个整型指针变量ptr,指针变量ptr的类型取决于他所需要指向的变量,如这里,ptr要指向int类型变 ...
- C和指针笔记 3.8 static关键字
当用于不同的上下文环境时,static关键字具有不同的意思. 当它用于函数定义时,或用于代码块之外的变量声明时,static关键字用于修改标识符的链接属性,从external改为internal,但标 ...
- C和指针笔记 3.7 存储类型
变量的破碎类型是指存储变量值的内存类型.变量的存储类型决定变量何时创建.何时销毁以及它的值将保持多久. 有三个地方可以用于存在变量:普通内存.运行时堆栈.硬件寄存器. 变量的缺省存储类型取决于它的声明 ...
- C和指针笔记 3.6链接属性
链接属性决定如何处理在不同文件中出现的标识符.标识符的作用域也它的链接属性有关,但这两个属性并不相同. 没有链接属性的标识符(none)总是被当作单独的个体,也就是说该标识符的多个声明被当作独立不同的 ...
- C语言学习之路
c语言学习 初识c语言 c语言数据类型.运算符和表达式(整数浮点数) 字符型数据/字符串 算术运算符和算术表达式(优先级,结合性等) 顺序程序设计(运算符之类内容,字符输入输出等) C/C++ 查看数 ...
随机推荐
- cakePHP的controller回调
1. afterFilter(), executed after all controller logic, including the rendering of the view2. beforeF ...
- C#简易播放器(基于开源VLC)
可见光通信技术(Visible Light Communication,VLC)是指利用可见光波段的光作为信息载体,不使用光纤等有线信道的传输介质,而在空气中直接传输光信号的通信方式.LED可见光通信 ...
- ubuntu remove mysql
ubuntu 彻底删除 mysql 然后重装 mysql 删除 mysql sudo apt-get autoremove --purge mysql-server-5.0sudo apt-get r ...
- SpringMVC 拦截器
类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理. 常用场景: 1.日志记录:记录请求信息的日志,以便进行信息监控.信息统计.计算PV(Page View)等. 2.权限 ...
- C#调用Java类
C#调用Java类 (2011-01-07 14:02:05) 转载▼ 分类: Java学习 1. 在Eclipse中新建名称为hello的java project,此工程仅包含一个文件hell ...
- (转)linux内核虚拟文件系统浅析
转自http://hi.baidu.com/_kouu/item/4e9db87580328244ef1e53d0 ###### 虚拟文件系统(VFS)在我看来, "虚拟"二字主要 ...
- Go Go
Go Go *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important ...
- redis实现有序的消息队列
redis是什么东西就不多说了,网上文章一搜一大堆. 首先来说一下我要实现的功能: 类似一个消息中转站吧,如果有人要发送消息,先将消息发到我这里来,然后我这边进行转发,为的就是有一个统一的管理和修改时 ...
- 【转载】如何在Ubuntu上安装LAMP服务器系统?
转载自:http://os.51cto.com/art/201307/405333.htm [2013年7月25日 51CTO外电头条]为何应该在Ubuntu上安装LAMP服务器?从事Web开发工作时 ...
- 前端们,gulp该用起来了,简单的demo入门——gulp系列(一)
gulp.grunt前端自动化工具,只有用过才知道多么重要. 它们问世这么久了?你真的用过吗? 写个简单的less.watch任务的demo分享———— 1.准备: 安装全局node.npm,这个教程 ...