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++ 查看数 ...
随机推荐
- 写给已有编程经验的 Python 初学者的总结
当我开始学习Python的时候,有些事我希望我一早就知道.我花费了很多时间才学会这些东西.我想要把这些重点都编纂到一篇文章当中.这篇文章的目标读者,是刚刚开始学习Python语言的有经验的程序员,想要 ...
- 30分钟入门Java8之方法引用
30分钟入门Java8之方法引用 前言 之前两篇文章分别介绍了Java8的lambda表达式和默认方法和静态接口方法.今天我们继续学习Java8的新语言特性--方法引用(Method Referenc ...
- Oracle Purchasing QUESTIONS AND ANSWERS
Topic Summary Topic: CORRECTIONS: Corrections Topic: DELIVER: Receiving Delivery Topic: DROPSHIP: Dr ...
- MySQL实现类似Oracle的序列
MySQL实现类似Oracle的序列 2013-10-22 10:33:35 我来说两句 作者:走过的足迹 收藏 我要投稿 MySQL实现类似Oracle的序列 Oracl ...
- Mesh Wifi
best idea ever Submitted by ozzy (not verified) on Mon, 2009-09-21 09:39. I thought of doing this on ...
- mysql中连接失败2003错误解决办法
在使用mysql数据库,新建连接时,会报2003-Can't connect to server on 'localhost'(10038)错误,原因主要是MYSQL服务没有启动起来,但是进入:计算机 ...
- Linux内核中双向链表的经典实现
概要 前面一章"介绍双向链表并给出了C/C++/Java三种实现",本章继续对双向链表进行探讨,介绍的内容是Linux内核中双向链表的经典实现和用法.其中,也会涉及到Linux内核 ...
- AngularJS 五大特性,加快 Web 应用开发
AngularJS 是谷歌的一个 JavaScript 框架,旨在简化前端应用程序的开发.如果你在开发单页的应用程序,我敢肯定你已经听说过它.我是 AngularJS 的忠实粉丝,在这篇文章中我将概述 ...
- rsync同步Nginx日志遇到问题总结
一.目的 将nginx 日志通过普通用户利用rsync公钥认证的方式实时同步到本地服务器上,之后使用elk程序进行处理. 二.遇到问题及解决方法思路 问题1.文件权限:nginx 的日志默认权限如下: ...
- ASP.NET WebForm与MVC优缺点
发表于我的个人网站中,请点击阅读!