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 和 OpenCV 检测图片上的条形码
用 Python 和 OpenCV 检测图片上的的条形码 这篇博文的目的是应用计算机视觉和图像处理技术,展示一个条形码检测的基本实现.我所实现的算法本质上基于StackOverflow 上的这个问 ...
- 全中国的省市县镇乡村数据获取以及展示java源代码
第一步.准备工作(数据源+工具): 数据源(截止目前最全面权威的官方数据):http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2013/ 爬取数据的工具 ...
- JS中的constructor与prototype
http://www.cnblogs.com/qiantuwuliang/archive/2011/01/08/1930548.html 在学习JS的面向对象过程中,一直对constructor与pr ...
- java 实现验证码
package edu.zzuli.common; import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; i ...
- [LeetCode] Longest Valid Parentheses 动态规划
Given a string containing just the characters '(' and ')', find the length of the longest valid (wel ...
- JavaScript面试库
1.将一段字符串转成驼峰命名法. var str = "web-kit-index"; function to(str){ var j = str.split("-&qu ...
- Unity 3D 一个简单的角色控制脚本
之所以写这个脚本,是因为我想起了我还是新手的时候,那时为了一个角色控制脚本百度了半天还是一无所获,因为看不懂啊,都写的太高级了 希望这个脚本能够帮助那些 像曾经的我一样迷失于代码中的新手们能够清晰的理 ...
- linux下如何修改weblogic console登陆的用户名和密码
1. 执行安装目录下config.sh ./config.sh 2.选择 2|Extend an existing WebLogic configuration 3. 别的一路跳过,到修改secur ...
- Mysql学习笔记(十一)临时表+视图
学习内容: 临时表和视图的基本操作... 临时表与视图的使用范围... 1.临时表 临时表:临时表,想必大家都知道这个概念的存在...但是我们什么时候应该使用到临时表呢?当一个数据库存在着大量的数 ...
- HTML解析类 ,让你不使用正则也能轻松获取HTML相关元素 -C# .NET
功能: 1.轻松获取指元素HTML元素. 2.可以根据属性标签进行筛选 3.返回的都是Llist强类型无需转换 用过XElement的都知道 用来解析XML非常的方便,但是对于HTML的格式多样化实在 ...