#include <stdio.h> int main(void) { int a=20; //声明整形变量a的值是20 int *b=&a; //把变量a的内存地址取出来,赋值给指针变量b *b = 21; //把指针变量b的实际数值取出来,修改为21 printf("%d\n", a); //利用指针的地址和取值运算符改变了a的值。 return 0; }
注释是本人对代码的理解,可以运行。利用地址修改数据,结果是不要a=21就把变量值改掉。
问一下这个例子能否体现了指针最最基本的作用?
本人的理解是要改内存数据,既可通过变量改,也可通过地址改,而发明指针目的就是让我们操作地址。
解决方案
10
c语言的指针,是对汇编指令的自然延伸,汇编中无所谓变量,变量无非是内存地址中的一些数据而已。只要是找对内存地址,对地址中的数据操作,就可以认为是对变量进行了操作。所以,不是c语言发明了指针,而是指针将汇编语言直接操作内存地址的概念稍微抽象了一下。
指针不仅仅能是操作简单变量,在c语言中,几乎任何东西都可以用指针来操作。结构体指针,函数指针,数组指针….
指针不仅仅能是操作简单变量,在c语言中,几乎任何东西都可以用指针来操作。结构体指针,函数指针,数组指针….
10
操作系统,编译器
以及使用API,调用驱动,写驱动
凡是涉及底层的往往需要指针
不用指针,绕的弯子太大,还不好用
凡是,涉及底层,不需要指针的语言,都是对指针做了某种封装的
没有这些封装就只好用汇编实现了,
要么提供指针或引用,要么用汇编,甚至直接写二进制代码,不然的话,封装一下
。引用其实是指针的某种封装