9.3.2指向char和int的指针_实例1

视频教程👇
实例1
步骤一
我们在上面函数的基础上,写一个函数test1()

main.c

我们在test1()函数中定义了一个整型变量ia,定义了一个指向整型的指针变量pi,定义了一个指向字符型的指针变量pc。然后打印出这些变量的地址。
编译
gcc -m32 -o pointer_test pointer_test.c
运行:
./pointer_test
结果:

在32位的系统中int类型变量在内存中占用4个字节,指针型变量在内存中占用4个字节如图:

步骤二
在test1()的函数中对定义的变量进行赋值,然后把赋值的结果打印出来。

编译:
gcc -m32 -o pointer_test pointer_test.c
运行:
./pointer_test
结果:

从结果可以看出来,变量pi和pc的值都等于变量ia的地址。
步骤三
我们使用指针并且对其进行取值,然后移动指针,在test1中添加如下代码,完成所述要求
/*第三步:使用指针:1)取值 2)移动指针*/

编译
gcc -m32 -o pointer_test pointer_test.c
运行:
./pointer_test
结果:

由于pi指向了ia,所以*pi的值为0x12345678。由于pc也指向了ia,但是由于pc是字符型指针变量,一次只能访问一个字节,需要四次才能访问完。如图所示:

结论:
1. 指针变量所存储的内容是所指向的变量在内存中的起始地址。
2. &变量:
目的:获得变量在内存中的地址; 返回:变量在内存中起始地址;
视频教程👇
