指针和指针变量的区别
文章目录
- 内存
- 左值与右值
- 指针和指针变量
首先引入一些概念
内存
内存是电脑上特别重要的存储器,计算机中所有程序的运行都是在内存中进行的。
所以为了有效的使用内存,就把内存划分成一个个小的内存单元,每个内存单元的大小都是一个字节。
为了能够有效的访问到内存的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地址。
为什么存在地址
为了提高效率,快速标识与定位。
左值与右值
空间 对应 左值
例:(对a来说)
a = 20;
//当把值赋给a时,是给a的空间写入20。
内容 对应 右值
例:(对a来说)
b = a;
//把a的内容赋给b。
指针和指针变量
什么是指针
指针就是地址,地址就是指针。
什么是指针变量
指针变量是变量。定义一个指针变量,是在内存中开辟一个空间,该空间里面存放地址。
如何使用
指针更多强调的是内容(对应右值),指针变量更多强调的是空间(对应左值)。判断一个指针和一个指针变量要通过判断它是左值还是右值。
int *p = &a; //定义了指针变量pp = &b; //将b的地址放在p的空间int *q = p; //定义了指针变量q,把p的内容(地址)给了q(空间)
大部分使用的都是指针变量,但是书中经常简称定义一个指针,这种说法并没有错,这时通过上下文,通过左值和右值进行判断。
指针和指针变量不一样,严格来说,定义一个指针是个错误的说法。但是,在日常生活中,还是将指针和指针变量混在一起使用,因为大部分人和书将指针和指针变量混在一起。既可以说定义一个指针,也可以说定义一个指针变量,它到底是什么需要自己判断。
指针和指针变量的区别相关推荐
- 指针与指针变量的区别(C语言)
提示:本章主要谈及个人对C语言指针和指针变量的理解 文章目录 前言 一.指针是什么? 二.指针变量是什么? 三.知识拓展 总结 前言 指针是C语言中的一个很重要的concept,掌握指针的应用,可以使 ...
- 变量与指针变量的区别
谈一般变量与指针变量的区别 一. 首先我们要知道变量访问有两种方式 1 . 变量名 : 例如 int a = 10 i+j = 10 2 . 地址 :顾名思义它表示的是一个变量 ...
- “指针”和“指针变量”的区别
1.我们在定义一个变量a时,变量a本质上代表一个存储单元,CPU通过该存储单元的地址访问该存储单元中的数据. 所以a即会表示存储单元的地址,也代表存储单元中的数据.这样产生了二义性.为了消除这种二义性 ...
- c语言中定义结构体指针并指向一片内存空间和直接定义一个结构体变量的区别 Node *p=(Node *)malloc(sizeof(Node)); 和 Node p 两个有什么区别??? Node是一
(来自百度解答) Node *p是定义一个Node结构体指针,指针名为p,指向一个Node结构体,并为这个结构体分配了内存空间 该结构体无命名 Node p是定义一个Node结构体,结构体名为p. 追 ...
- golang中值类型/指针类型的变量区别总结
转自:https://segmentfault.com/a/1190000012329213 值类型的变量和指针类型的变量 先声明一个结构体: type T struct {Name string } ...
- (转)数组指针和指针数组的区别
数组指针(也称行指针) 定义 int (*p)[n]; ()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长.也就是说执行p+1时,p要跨过n个整型数 ...
- 【C 语言】数组与指针操作 ( 数组符号 [] 与 指针 * 符号 的 联系 与 区别 | 数组符号 [] 与 指针 * 符号 使用效果 基本等价 | 数组首地址 与 指针 本质区别 )
文章目录 前言 一.数组符号 [] 与 指针 * 符号 使用效果 基本等价 二.数组首地址 与 指针 本质区别 前言 参考 [C 语言]指针 与 数组 ( 指针 | 数组 | 指针运算 | 数组访问方 ...
- 【C 语言】指针数据类型 ( 指针类型变量 与 指针指向的内存块 概念区别 | 指针赋值 | 指针运算 | 内存赋值 | 内存取值 | 内存修改注意事项 )
文章目录 一.指针类型变量 与 指针指向的内存块 概念区别 1.指针赋值 2.指针运算 3.内存赋值 4.内存取值 5.内存修改注意事项 一.指针类型变量 与 指针指向的内存块 概念区别 指针类型变量 ...
- c语言中指针中 - 和 。的区别?
c语言中指针中 -> 和 .的区别? 例子1:比如有如下结构 typedef strut node{ int data; strut node * next; } ListNode; Lis ...
最新文章
- 知识图谱前端插件_大型前端项目可持续演进开发的思考
- Vue_异步加载_vue-resource(不再维护)
- 前端学习(1990)vue之电商管理系统电商系统之自定义时间过滤器
- EBS业务学习之应付INVOICE类型
- php,mysql 小测验 习题解析
- TensorFlow 辨异 —— tf.add(a, b) 与 a+b(tf.assign 与 =)、tf.nn.bias_add 与 tf.add
- bzoj 1697: [Usaco2007 Feb]Cow Sorting牛排序(置换)
- 创建一棵二叉树(C++)以及遍历
- 开启霍比特人之意外内核优化旅行 -- 专栏序言
- mysql计算个税_2019年个人所得税计算函数
- Camera2缩略图预览功能的实现
- ccs 动态梦幻西游
- StrandHogg漏洞修复
- 20165219 2017-2018-2《Java程序设计》结对编程一 第一周总结
- 国内几款接口管理平台,使用体验分析对比:总有一款是你想要的!
- 2020中国邮政总行信息技术岗校招笔试经历
- 微信CRM系统对客户关系管理有什么好处?
- IK分词器下载、使用和测试
- 愿你一生欢喜,不为世俗裹挟 | 笔记摘要
- MySQL【狂神+老杜视频笔记】