您的位置:首页 > 编程语言 > C语言/C++

郝斌的C语言基础 137  一个指针变量到底占几个字节

2016-12-08 22:44 309 查看
一个指针变量到底占几个字节

预备知识

sizeof(数据类型)

功能:返回值就是该数据类型所占的字节数

例子: sizeof(int)  值是4 sizeof(char)  值是1   sizeof(double)  值是8

假设p 指向char 类型变量(1个字节)

假设q 指向int类型变量(4个字节)

假设r 指向double类型变量(8个字节)

p q r 本身所占的字节数是否一样? 是一样的

32位的地址总线就有32根线,每根线有两种状态(0或1),所以最大可以控制2^32=4294967296个内存单元, 就是4G个单元,每个单元就是一个字节

每一个字节都有一个地址,所以就有4G个地址编号,如果编号从0开始,那么就有4294967295个地址,即地址编号为:0x00000000~0xffffffff.

所以每个地址(指针)也是占32位(即4个字节)的.如果为64位的,那么指针的的大小就占8个字节了.

#include<stdio.h>

int main(void)
{
char ch = 'a';
int i = 99;
double x = 66.6;
char *p = &ch;
int *q = &i;
double *r = &x;

printf("p的大小是:%d   q的大小是:%d   r的大小是:%d",sizeof(p),sizeof(q),sizeof(r));
return 0;
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: