> 教育经验 > int型变量占几个字节

int型变量占几个字节

int型变量占几个字节

以32位系统为例,无论什么类型的指针变量,它本身占用的空间都是4个字节,那为什么我们需要把指针变量分成不同的子类型呢?

比如

这里的ptr_ch是字符型指针,用于存储字符型变量的地址。

这里的ptr_i是整形指针,用于存储整形变量的地址。

ptr_ch和ptr_i都占用4个字节,我们似乎看不出指针类型的必要性。

但是,当未来我们使用指针变量改变内存区域的值的时候

*ptr_ch=\'B\'是要改变指针ptr_ch所指向的内存区域的「

一个字节

」,而*ptr_i=255改变的是ptr_i所指向内存区域的「

四个字节

」(因为它的意图是改变一个整形变量的值,而整形变量是占用4个字节的),这时是通过指针类型来决定要访问的内存区域大小的。

同样地,当我们使用指针变量从内存区域中读取数据的时候,也需要指针类型来标识要读取的数据区域大小。

例如

这就是为什么我们要区分指针类型的主要原因之一,此外,在ptr_i++和ptr_ch++时,它们自增的值也会根据数据类型而有所不同。