9.3C语言指针复习_指向char和int的指针

视频教程👇
日常中,我们把笔记写到记事本中,记事本就相当于一个载体(存储笔记的内容)。
C语言中有些变量,例如,char、int类型的变量,它们也需要一个载体,来存储这些变量的值,这个载体就是内存。
比如我们的电脑内存有4GB内存,也就是4*1024*1024*1024=4294967296字节。
我们可以把整个内存想象成一串连续格子,每个格子(字节)都可以放入一个数据,如下图所示。

每一个小格子都有一个编号,小格子的编号从0开始,我们可以通过读取格子的编号,得到格子里面的内容。同理,我们根据内存的变量的地址,来获得其中的数据。
下面写个小程序进行测试,实例:
point_test.c

根据程序可以看出来,函数的功能是输出,char,int,char **类型所占据的字节数;
编译:
gcc -o pointer_test pointer_test.c
运行应用程序:
./pointer_test
结果:(我用的是64位的编译器)

可以看出在64位的机器中,用8个字节表示指针,我们可以测试一下用32位的机器编译
编译:
gcc -m32 -o pointer_test pointer_test.c //加上-m32:编译成32位的机器码
编译可能会出现下面提示错误:
/usr/include/features.h:374:25: fatal error: sys/cdefs.h: No such file or directory
解决错误,安装lib32readline-gplv2-dev
,执行:
sudo apt-get install lib32readline-gplv2-dev
重新编译:
gcc -m32 -o pointer_test pointer_test.c //没有错误
运行生成的应用程序:
./pointer_test
结果:

可以看出编译成32位的机器码,指针就是用4个字节来存储的,
总结:
1. 所用变量不论是普通变量(char,int)还是指针变量,都存在内存中。
2. 所用变量都可以保存某些值。
3. 怎么使用指针?
取值
移动指针
视频教程👇
