在计算机中,所有的数据都是存放在存储器中的。一般把存储器中的一个字节称为一个内存单元,不同的数据类型所占用的内存单元数不等,如整型量占2个单元,字符量占1个单元等,在前面已有详细的介绍。为了正确地访问这些内存单元,必须为每个内存单元编上号。根据一个内存单元的编号即可准确地找到该内存单元。内存单元的编号也叫做地址。既然根据内存单元的编号或地址就可以找到所需的内存单元,所以通常也把这个地址称为指针。

内存单元的指针和内存单元的内容是两个不同的概念。 可以用一个通俗的例子来说明它们之间的关系。我们到银行去存取款时,银行工作人员将根据我们的帐号去找我们的存款单, 找到之后在存单上写入存款、取款的金额。在这里,帐号就是存单的指针, 存款数是存单的内容。对于一个内存单元来说,单元的地址即为指针,其中存放的数据才是该单元的内容。

在C语言中,允许用一个变量来存放指针,这种变量称为指针变量。因此,一个指针变量的值就是某个内存单元的地址或称为某内存单元的指针。

图中,设有字符变量C,其内容为“K”(ASCII码为十进制数 75),C占用了011A号单元(地址用十六进数表示)。设有指针变量P,内容为011A,这种情况我们称为P指向变量C,或说P是指向变量C的指针。

严格地说,一个指针是一个地址,是一个常量。而一个指针变量却可以被赋予不同的指针值,是变量。但常把指针变量简称为指针。为了避免混淆,我们中约定:“指针”是指地址,是常量,“指针变量”是指取值为地址的变量。定义指针的目的是为了通过指针去访问内存单元。

既然指针变量的值是一个地址,那么这个地址不仅可以是变量的地址,也可以是其它数据结构的地址。在一个指针变量中存放一个数组或一个函数的首地址有何意义呢?

因为数组或函数都是连续存放的。通过访问指针变量取得了数组或函数的首地址,也就找到了该数组或函数。这样一来,凡是出现数组,函数的地方都可以用一个指针变量来表示,只要该指针变量中赋予数组或函数的首地址即可。这样做,将会使程序的概念十分清楚,程序本身也精练,高效。

在C语言中,一种数据类型或数据结构往往都占有一组连续的内存单元。用“地址”这个概念并不能很好地描述一种数据类型或数据结构,而“指针”虽然实际上也是一个地址,但它却是一个数据结构的首地址,它是“指向”一个数据结构的,因而概念更为清楚,表示更为明确。 这也是引入“指针”概念的一个重要原因。

C语言指针【转】

一.C语言指针的概念 在计算机中,所有的数据都是存放在存储器中的.一般把存储器中的一个字节称为一个内存单元,不同的数据类型所占用的内存单元数不等,如整型量占2个单元,字符量占1个单元等,在前面已有详细 ...

C语言之指针基础概念

今天就写一下关于C语言指针的一些感想吧. 很多同学都搞不懂指针,我一开始也云里雾里没看懂指针,而且老师又把指针说得很难的样子.其实主要是把指针”*“的作用给弄混了,不用畏惧,细心点看就可以了. 首先简 ...

[转]C语言指针学习经验总结浅谈

指针是C语言的难点和重点,但指针也是C语言的灵魂 . 这篇C语言指针学习经验总结主要是我入职以来学习C指针过程中的点滴记录.文档里面就不重复书上说得很清楚的概念性东西,只把一些说得不清楚或理解起来比较 ...

不可或缺 Windows Native (7) - C 语言: 指针

[源码下载] 不可或缺 Windows Native (7) - C 语言: 指针 作者:webabcd 介绍不可或缺 Windows Native 之 C 语言 指针 示例cPointer.h #i ...

C语言指针学习

C语言学过好久了,对于其中的指针却没有非常明确的认识,趁着有机会来好好学习一下,总结一下学过的知识,知识来自C语言指针详解一文 一:指针的概念 指针是一个特殊的变量,里面存储的数值是内存里的一个地址. ...

(转载)c语言指针学习

前言 近期俄罗斯的陨石.四月的血月.五月北京的飞雪以及天朝各种血腥和混乱,给人一种不详的预感.佛祖说的末法时期,五浊恶世 ,十恶之世,人再无心法约束,道德沦丧,和现在正好吻合.尤其是在天朝,空气,水, ...

C语言指针类型 强制转换

关于C语言指针类型 强制转换  引用一篇文章: C语言中,任何一个变量都必须占有一个地址,而这个地址空间内的0-1代码就是这个变量的值.不同的数据类型占有的空间大小不一,但是他们都必须有个地址,而这个 ...

C语言指针和数组知识总结(上)

C语言指针和数组知识总结(上) 一.指针的基础 1.C语言中,变量的值能够通过指针来改变,打印指针的语句符号可以是:  %08x 2.指针的本质 指针的本质就是变量,那么既然是变量,那么一定会分配地址 ...

C指针决心 ------ 指针的概念和元素

本文是自己学习所做笔记,欢迎转载,但请注明出处:http://blog.csdn.net/jesson20121020 指针在C语言中的地位,不用多说. 指针的概念 指针是一个特殊的变量,它里面存储 ...

随机推荐

tensorflow中的lstm的state

考虑 state_is_tuple     Output, new_state = cell(input, state)     state其实是两个 一个 c state,一个m(对应下图的 ...

开篇一文 php 和 js 默认参数

啥话不说... <?php function setheight($height=50){ echo "这个高度是 $height
"; } seth ...

easyUI draggable插件使用不当,导致拖动div内部文本框无法输入;设置echarts数据为空时就显示空白,不要动画和文字

先上一个Demo yyy-MM-dd 00:00:00"); //获取到当前的时间     Cale ...

Miller-Rabin素数测试学习小计

1.Miller-Rabin是干啥的?它是用来检测一个数字(一般是很大的数字)是不是素数: 2.Miller-Rabin算法基于的两个定理: (1)费尔马小定理:如果p是一个素数,且0

CodeForces 149D Coloring Brackets 区间DP

http://codeforces.com/problemset/problem/149/D 题意: 给一个给定括号序列,给该括号上色,上色有三个要求 1.只有三种上色方案,不上色,上红色,上蓝色 2 ...

Node&period;js笔记2

入门二 5. 事件 Node.js中所有的异步I/O操作完成时都会发送一个事件到事件队列. Events 事件模块 `events.EventEmitter` 简单用法: var EventEmitt ...

Beautiful Soup 定位指南

Reference: http://blog.csdn.net/abclixu123/article/details/38502993 网页中有用的信息通常存在于网页中的文本或各种不同标签的属性值,为 ...

android logger 日志工具

https://github.com/orhanobut/logger 基础使用:https://blog.csdn.net/github_33304260/article/details/54799 ...

c语言定义node类型指针,C语言指针的概念相关推荐

  1. c语言使用node类型指针,C语言利用 void 类型指针实现面向对象类概念与抽象

    不使用C++时,很多C语言新手可能认为C语言缺乏了面向对象和抽象性,事实上,C语言通过某种组合方式,可以间接性的实现面对对象和抽象. 不过多态和继承这种实现,就有点小麻烦,但是依然可以实现. 核心: ...

  2. 面试——c语言定义bool类型

    C语言自定义bool类型的两种方式 由于C语言以0,1分别代表false,true, 可以自定义bool类型,这里有两种方式作为参考: 1:定义枚举类型:typedef enum{false,true ...

  3. C语言1066字符类型统计,C语言编译过程及数据类型

    写在前面 C语言可以称得上是高级语言中的低级语言,接下来一段时间,我会写一下文章关于c语言,把它的神秘面纱一 一揭开.下面主要是c语言的C语言编译过程及数据类型 源文件编译过程 为了使计算机能执行高级 ...

  4. c语言定义max和命令,C语言#define定义函数

    define是c语言中的预处理命令,它用于宏定义,可以提高源代码的可读性,为编程提供方便. 预处理命令以"#"号开头,如包含命令#include,宏定义命令#define等.一般都 ...

  5. 单片机c51语言定义bool类型,C51单片机数据类型的具体定义及应用

    描述 先来简单说说C语言的标识符和关键字.标识符是用来标识源程序中某个对象的名字的,这些对象可以是语句.数据类型.函数.变量.数组等等.C语言是大小字敏感的一种高级语言,如果我们要定义一个定时器1,可 ...

  6. C语言定义code报错,C语言报错整理大全

    C语言codeblocks 错误总汇! C语言错误代码及错误信息错误释义error 1: Out of memory 内存溢出 error 2: Identifier expected 缺标识符 er ...

  7. c语言定义int 输出4386,C语言 · 矩阵乘法

    问题描述 输入两个矩阵,分别是m*s,s*n大小.输出两个矩阵相乘的结果. 输入格式 第一行,空格隔开的三个正整数m,s,n(均不超过200). 接下来m行,每行s个空格隔开的整数,表示矩阵A(i,j ...

  8. C语言定义直线的数据类型,C语言 | 数据类型

    原标题:C语言 | 数据类型 1.变量与常量数据 在程序的世界中,可以让计算机按照指令做很多事情,如进行数值计算.图像显示.语音对话.视频播放.天文计算.发送邮件.游戏绘图以及任何我们可以想象到的事情 ...

  9. c语言定义禁止优化变量,c语言防止优化

    c语言防止优化 编译器编令里有设置,通置,你可以要求 不优化,以要求种优化. 具体选项有哪些,要查自己编译器的帮助文件. 例如,MS VC++ 6.0 编译器编 优化选项: /O1:优化使产生的可执行 ...

最新文章

  1. 配置网络(静态ip)
  2. POJ1143 Number Game(DP)
  3. java中Pattern和Matcher的使用
  4. 全球超算500强新榜发布:美国卫冕 中国力争
  5. Android平台Camera2数据如何对接RTMP推流到服务器
  6. linux 安全防护管理
  7. 如何从 iCloud 共享文件和文件夹?
  8. kibana的query string syntax 笔记
  9. 微信小程序 服务通知
  10. linux批量修改文件编码格式(包含子目录)
  11. 【200以内素数】C语言
  12. 【GNSS】坐标系统
  13. 为什么压缩卷明明显示有许多空间却无法分出空余空间?
  14. 高通平台耳机类型识别
  15. 重阳节,让我们祝天下的老年人生活幸福快乐。
  16. 加拿大鹅“跌倒”,波司登“吃饱”?
  17. 硬件设计基础----运算放大器
  18. 如何在没有电缆的情况下流塞恩费尔德
  19. 使用TextPad一键编译运行C++程序和JAVA程序
  20. 【花雕动手做】有趣好玩的音乐可视化系列项目(24)--无限LED镜子灯

热门文章

  1. 红橙Darren视频笔记 换肤框架4 换肤的功能完善 内存泄漏分析
  2. 单片机实验——熟悉单片机开发环境和指令系统
  3. AZ 900 英文原文档下载,有答案有解释
  4. IDEA快捷键之“跳入接口实现类”
  5. 买低配车,更保值?!坊间有一句戏言:买车都要买低配
  6. 3des加密 java php_php 3des加密 兼容JAVA 多么痛的领悟呀
  7. DROID-SLAM: 单目、双目、RGBD相机的深度视觉SLAM
  8. 云知梦css学习笔记(2018年4月1日15:58:07)
  9. 华为p50pro怎刷机华为p50怎么解锁华为p50pro能刷机吗华为p50强制刷机华为p50解账户锁华为P50pro解账户锁华为p50pro解锁账户华为p50怎么解锁帐号华为p50忘记解锁密码怎么办
  10. 世界最大的图像:26,031,250,000像素