指针变量几个字节(C语音指针变量为何只占用4个字节)

本文目录
- C语音指针变量为何只占用4个字节
- 究竟是什么决定了指针变量是4个字节,电脑的内存分为哪几部分啊,可以具体介绍介绍
- 一个指针变量占几个字节问题
- 一个指针变量到底占几个字节
- 在C语言中指针变量占2个还是4个字节老师说2个我觉得是4个
C语音指针变量为何只占用4个字节
C语言的指针变量所占的空间,是一个字的空间。
这其实跟机器有关。
如果你使用的是32位的编译器,编译后的指针变量是4个字节。
如果使用的是64位的编译器,编译后的指针变量应该是8字节
用sizeof关键字可以看到当前指针所占的字节数。
究竟是什么决定了指针变量是4个字节,电脑的内存分为哪几部分啊,可以具体介绍介绍
(1)CPU在单位时间内(同一时间)能一次处理的二进制数的位数叫字长。计算机处理数据的速率,和它一次能加工的位数以及进行运算的快慢有关。
(2)指针,是一个无符号整数(unsigned int),它是一个以当前系统寻址范围为取值范围的整数。一般的CPU、windows操作系统、VC++都是32位的,所以指针变量是4个字节。
一个指针变量占几个字节问题
指针不同于一般变量,存的是变量的地址,在同一架构下地址长度都是相同的(cpu的最大寻址内存空间),所以不同类型的指针长度都一样
你输出的4 4 4,说明指针长度为4字节
可以记录的地址范围是0x00000000~0xFFFFFFFF,这个范围才是指针变量的值
比如说一个char 1字节,可以存在0x0,也可以位于0xFFFFFFFF
而和char占用1字节还是100字节无关,指针的范围只和机器字和系统有关
比如你的32位系统,指针长度为4,在64位操作系统下那么就都是8了
一个指针变量到底占几个字节
假设q指向int类型变量 (占4个字节)假设r指向double类型变量 (占8个字节)那么p、q、r它们本身所占的字节数是否一样?这里还得学习一个小知识sizeof(数据类型)此运算符功能:返回值就是该数据类型所占的字节数。sizeof(变量名)此运算符功能:返回值就是该变量所占的字节数。# include 《stdio.h》int main(void){char ch = ’A’;int i = 99;double x = 66.6;char * p = &chint * q = &idouble * r = &x printf("%d %d %d\n", sizeof(p), sizeof(q), sizeof(r)); //分别输出不同类型的指针变量名占多少字节。 return 0;}运行结果:总结:任何类型的指针变量都是占用4个字节。
在C语言中指针变量占2个还是4个字节老师说2个我觉得是4个
ms-dos下是2个,windows下有2个的有4个的有8个的,看是16位程序还是32位程序还是64位程序。
其中16位程序在windows下要靠虚拟机执行因为现在的windows系统已经不含16位子系统了
说2个的那是很早很早以前的教材,然后这帮选教材的人又不跟进时代……
如果你用的是turbo c,那么2个。用的vc,大部分时候是4个,编译的时候设置成64位那么就是8个

更多文章:
全球新冠肺炎疫情背景下航运发展(盐田港复苏日志:半年历劫从“低谷”到“爆仓” 疫情之后巨轮如何越洋航行)
2026年9月7日 17:10
matlab求解带字母参数方程组(我想matlab求一个关于x,y的方程组 ab c d f e h m n 都是参数)
2026年9月7日 16:30
oracle中的循环语句(下面哪个不是oracle程序设计中的循环语句 a for)
2026年9月7日 15:30
电脑里2个系统怎么删除一个(电脑开机显示有两个系统,如何删除一个)
2026年9月7日 12:20
scrollthrough意思(“scroll”是什么意思)
2026年9月7日 08:00
怎么激活keygen(注册机如何激活cad2008一个简单激活cad2008的方法)
2026年9月7日 06:30
vba编写excel插件(excel vba中能否动态创建控件)
2026年9月7日 04:40





