指针变量为什么占4个地址(为什么不同类型的指针变量所占字节数都是4)
本文目录
- 为什么不同类型的指针变量所占字节数都是4
- 为什么指针变量的大小都是4个字节
- 为什么地址总线是32根,所以指针变量的地址所占空间就是4个字节
- C语言中,为什么指针变量无论指向那个类型的变量,其所占的字节都为4个字节详解
- 一个字节有一个地址,而一个地址却要占4个字节,这个该如何理解!
- 究竟是什么决定了指针变量是4个字节,电脑的内存分为哪几部分啊,可以具体介绍介绍
为什么不同类型的指针变量所占字节数都是4
因为四个字节就可以放的下了。(32位系统)
只表示首地址就行了。
如
int arr = {1, 2, 3};int *p = arr;printf("%d\n", *(p+2));
*(p+2)就可以指定到arr, 即3。
为什么指针变量的大小都是4个字节
算是编译器的规定。 指针变量存放指向地址。 32位机上地址是4字节(每字节8位)无符号整数。 所以一个指针变量占4字节就够了。 用sizeof 可以测定 大校
为什么地址总线是32根,所以指针变量的地址所占空间就是4个字节
= =其实这没关系,地址总线是64根也仍然可以兼容指针占4字节的程序。不过由于一根地址总线传送地址的一位,32根地址总线最多传送32位(即4字节)的地址,因此指针也占4字节可以表示所有的地址,同时没有浪费……
C语言中,为什么指针变量无论指向那个类型的变量,其所占的字节都为4个字节详解
32位Windows内存地址采用平坦结构,内存地址都是32位整数,而指针变量的实质就是内存地址。所以,不管哪一种类型的指针变量都是4个字节大小。
一个字节有一个地址,而一个地址却要占4个字节,这个该如何理解!
楼上解释指针变量占4个字节时有误,并不是整型数字在c中占4个字节指针变量才是4个字节,而是地址编号在32位系统里是有32位组成,在64系统里是由64位组成,所以指针变量在32位占用4字节,在64位占8个字节,当然在64位可能也占4个字节,这还跟编译器有关。还有不能说一个地址占4个字节,一个地址只占一个字节,只能说数据类型占几个字节,比如,整型int i = 9,我们说整型占用4个字节,而这个整型变量的地址是这四个字节的首字节地址。
究竟是什么决定了指针变量是4个字节,电脑的内存分为哪几部分啊,可以具体介绍介绍
(1)CPU在单位时间内(同一时间)能一次处理的二进制数的位数叫字长。计算机处理数据的速率,和它一次能加工的位数以及进行运算的快慢有关。(2)指针,是一个无符号整数(unsigned int),它是一个以当前系统寻址范围为取值范围的整数。一般的CPU、windows操作系统、VC++都是32位的,所以指针变量是4个字节。
更多文章:
nrg转iso(请问WII游戏怎么把NRG格式转换成ISO 放在移动硬盘里)
2024年6月15日 09:01
如何下载office2003(电脑怎么下载office2003)
2024年8月5日 11:50
魔兽争霸1 20补丁(魔兽争霸3冰封王座 安装完1.20补丁后,无法启动游戏,说什么无法启动game.dll)
2023年6月12日 17:40