朱有鹏c语言 指针才是c语言的精髓 1

指针的实质就是变量,和普通变量没有区别。
但指针的用途和普通变量有所不同,指针变量应该用于存储另一个变量的地址,而不是随意用来储,一些int类型的数。
指针的出现是为了间接访问,而c语言的指针起源与汇编语言中的间接访问(实质是cpu中寻址方式的一种)(cpu有两种寻址方式直接寻址,间接寻址,特别的是寄存器间接寻址)特别是在arm这种cpu中广泛采用寄存器寻址这种方式。
间接寻址是cpu本身的特性,这个就决定了汇编语言必须实现间接寻址,就决定了在汇编以上的c语言也必须实现间接寻址。
指针的出现不是偶然,是c语言巧妙的把cpu的寄存器间接寻址和汇编语言间接寻址封装成了指针这种形式。

高级语言如java、c#没有指针是如何实现间接访问呢?

语言本身帮我们封装了间接寻址的功能,间接使用了指针。

指针标准使用方式

1 定义指针变量

2 给指针变量赋值(绑定指针)

3 解引用

指针变量绑定就是给指针变量赋值,也就是让指针变量指向另一个变量。当我们没有绑定之前不能解引用,绑定后才可以。

int a=23;
int *p;//第一步定义指针变量p
p=&a;//第二步绑定指针,让p指向变量a
p=(int *)4;//另一种绑定指针的方式,让指针指向地址为4的那个变量。
*p=555;//把555放到指针p指向的那个地址空间里面去。

注意

  • 当我们用int *p定义一个指针变量p时,因为p在mian函数里面,是一个局部变量,所以也遵循c语言里面局部变量的一般规律(定义局部变量未初始化,此局部变量中的数字是随机的)。
  • 此时如果解引用p相当于我们访问了这个随机数字为地址的内存空间,但此空间能否访问并不可知,所以解应用前一定要绑定赋值。
  • 指针绑定的意义就是让指针能访问可以访问的地方。指针的解引用是为了能够间接访问变量。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、温故而知新 1. 内存不够怎么办 内存简单分配策略的问题地址空间不隔离内存使用效率低程序运行的地址不确定 关于...
    SeanCST阅读 8,137评论 0 27
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,674评论 1 32
  • Swig java Jni开发指南目录Swig java Jni开发指南 Swig参考文档 全局变量 常量 只读变...
    oracle3阅读 4,214评论 0 1
  • 子类能够继承父类中被声明为public和protected的成员变量和成员方法,但不能继承被声明为private的...
    程序设计法师阅读 579评论 0 0
  • 字符串反转 split 字符串转成数组 reverse数组反转 join数组转成字符串 定时器的基本用法 单次定时...
    w_50df阅读 266评论 0 0

友情链接更多精彩内容