文章目录
前言一、指针类型的作用二、int型指针类型与char型指针类型int型指针类型2.char型指针类型
总结
前言
指针指向的是一个变量存储的地址,那么在c语言中,不同类型的指针有什么作用?比如:int型指针、char型指针、double型指针
一、指针类型的作用
指针类型决定了指针进行解引用操作时,访问空间的大小。(解引用:“*”的作用是引用指针指向的变量值,就好像根据一个人的家庭地址一样找到一个人,解引用通过地址找到地址对应的变量值,并对其进行操作)
下面我们以int型的指针类型和char型的指针类型进行比较。
二、int型指针类型与char型指针类型
int型指针类型
代码如下(示例):
#include
int main(){
int a = 0x12345678;
int* pa = &a;
*pa = 0;
}
这个代码块是利用解引用操作对a的地址的变量值进行操作。
这个操作会将变量a对应地址下的0x87 65 43 21(在计算机中,变量值是倒着存放的)修改成0x 00 00 00 00
2.char型指针类型
代码如下(示例):
#include
int main(){
int a = 0x12345678;
char* pa = &a;
*pa = 0;
这个操作会将变量a对应的地址下的0x 87 65 43 21修改成0x 00 65 43 21
总结
通过上述int型指针变量和char型指针变量的解引用操作可以看出,当使用int型接收a的地址后,对该指针对应的变量修改时,操作的范围是四个字节(16进制位的8位数对应的是四个字节),而对char型所接收a的地址对应的变量值修改时,操作的范围是一个字节。 指针类型决定了指针进行解引用操作时,访问空间的大小。 理解:在c语言中,char类型是一个字节,int类型是四个字节。那么我用char指针类型接收地址时,就只有一个char类型字节的操作范围(1个字节);;用int指针类型接收地址时,就只有一个int类型的操作范围(4个字节); 同理我们可以推出double指针类型的操作范围是八个字节!