本文目录一览

1,一般 c指针占几个字节

一般在 32 系统下是 32 位的, 即 4 个字节.

一般 c指针占几个字节

2,c语言中指针占多少个字节

指针占字节数和编译器有关.如果是16位编译器,那么指针占2字节.如果是32位编译器,那么指针占4字节如果是64位编译器 那么指针占8字节.即 指针位数和编译器位数相同.

c语言中指针占多少个字节

3,c语言指针占几个字节

在C语言中,无论指针指向的内容是什么,指针总是占4个字节的。
一个指针变量在内存中占两个字节(small模式编译)一个指针变量在内存中占四个字节(32位机器上)一般都是32位机器的,所以四个字节咯。

c语言指针占几个字节

4,在C语言中一个指针占用多少字节

指针即为地址,指针几个字节跟语言无关,而是跟系统的寻址能力有关。比如以前是16位系统,指针即为2个字节,现在一般是32位系统,所以是4个字节。指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。要搞清一个指针需要搞清指针的四方面的内容:指针的类型、指针所指向的类型、指针的值或者叫指针所指向的内存区、指针本身所占据的内存区。扩展资料:1、指针的类型从语法的角度看,你只要把指针声明语句里的指针名字去掉,剩下的部分就是这个指针的类型。这是指针本身所具有的类型。让我们看看例一中各个指针的类型:(1)int*ptr;//指针的类型是int*(2)char*ptr;//指针的类型是char*(3)int**ptr;//指针的类型是int**(4)int(*ptr)[3];//指针的类型是int(*)[3](5)int*(*ptr)[4];//指针的类型是int*(*)[4]2、指针所指向的类型当你通过指针来访问指针所指向的内存区时,指针所指向的类型决定了编译器将把那片内存区里的内容当做什么来看待。从语法上看,你只须把指针声明语句中的指针名字和名字左边的指针声明符*去掉,剩下的就是指针所指向的类型。例如:(1)int*ptr; //指针所指向的类型是int(2)char*ptr; //指针所指向的的类型是char(3)int**ptr; //指针所指向的的类型是int*(4)int(*ptr)[3]; //指针所指向的的类型是int()[3](5)int*(*ptr)[4]; //指针所指向的的类型是int*()[4]3、指针的值或者叫指针所指向的内存区或地址指针的值是指针本身存储的数值,这个值将被编译器当作一个地址,而不是一个一般的数值。在32 位程序里,所有类型的指针的值都是一个32 位整数,因为32 位程序里内存地址全都是32 位长。指针所指向的内存区就是从指针的值所代表的那个内存地址开始,长度为sizeof(指针所指向的类型)的一片内存区。以后,我们说一个指针的值是XX,就相当于说该指针指向了以XX 为首地址的一片内存区域。我们说一个指针指向了某块内存区域,就相当于说该指针的值是这块内存区域的首地址。指针所指向的内存区和指针所指向的类型是两个完全不同的概念。在例一中,指针所指向的类型已经有了,但由于指针还未初始化,所以它所指向的内存区是不存在的,或者说是无意义的。4、指针本身所占据的内存区在32 位平台里,指针本身占据了4 个字节的长度。参考资料来源:百度百科-指针

5,请问指针占用多少字节

指针就是一个地址值,在32位系统下,占用4个字节,用sizeof求枚举类型的长度,等于一个int型的长度,而与有几个枚举值无关.所以a也是占4个字节,
4字节
与编译器和操作系统有关。xp环境下面TC:指针占2个字节VC:占4个字节

6,一个指针占几个字节原理是什么呢

其实,这个问题很简单,稍微上网一搜,你就知道: 一个指针在64位的计算机上,占8个字节; 一个指针在32位的计算机上,占4个字节。 首先,我们要明白,指针就是地址,地址就是指针。 而地址是内存单元的编号。所以,一个指针占几个字节,等于是一个地址的内存单元编号有多长。 我们都知道,在计算机中,CPU不能直接与硬盘进行数据交换,CPU只能直接跟内存进行数据交换。而CPU是通过数据总线、地址总线、控制总线三条线与内存进行数据传输与操作。 假如,我们想通过CPU在内存中读取一个数字3,那么是怎样一个操作呢? 首先,CPU通过地址总线,在内存中找到数字3的地址;通过控制总线知道该操作是读还是写;然后通过数据总线,把数字3传输到CPU中。 我们可知道: 地址总线的宽度决定了CPU的寻址能力; 数据总线的宽度决定了CPU单次数据传输的传送量,也就是数据传输速度; 控制总线决定了CPU对其他控件的控制能力以及控制方式。 这是几种总线的类型以及简单功能。 我们平时所说的计算机是64位、32位、16位,指的是计算机CPU中通用寄存器一次性处理、传输、暂时存储的信息的最大长度。即CPU在单位时间内(同一时间)能一次处理的二进制数的位数。 假如,某计算机的地址总线是32位,那么其一次可以处理的信息是32条,每一条地址总线有0或1两种可能,那么32根地址总线一共有232种可能,也就是其描述的地址空间为0x0000 0000 0000 0000 ~ 232-1。 我们一般需要32个0或1的组合就可以找到内存中所有的地址,而32个0或1的组合,就是32个位,也就是4个字节的大小,因此,我们只需要4个字节就可以找到所有的数据。所以,在32位的计算机中,指针占4个字节。同理,在64位的计算机中,指针占8个字节。 同时也可以看出,由于地址总线为32,那么每次寻址的空间为0x0000 0000 0000 0000 ~ 232-1,那么CPU的最大内存为232Byte=222KB=212MB=22GB=4GB。 内存地址就像一条路上的门牌号,用几位表示需要看门牌数量。 门牌号从0号开始编排,到232-1号结束,一共就有232个门牌号。分别为二进制的 000000000000000000000000000号 000000000000000000000000001号 000000000000000000000000010号 最后 111111111111111111111111110号 111111111111111111111111111号 每个门牌的号码是32位(二进制),一个字节为8位,32位就是4字节。 数据存储是以“字节”(Byte)为单位,数据传输大多是以“位”(bit,又名“比特”)为单位,一个位就代表一个0或1(即二进制),每8个位(bit,简写为b)组成一个字节(Byte,简写为B),是最小一级的信息单位。 1bit就是二进制的0和1 1字节(Byte) = 8位(bit)=8比特 1个英文字母(不分大小写)占一个字节的空间 计算机能够处理的最小单元是 字节 而不是位 位,是由软件通过位运算符操作的 指针和指针变量的区别 内存地址是内存单元的编号 ; 指针就是地址,地址就是指针; 指针变量就是存放地址的变量,也可以说,指针变量就是存放指针的变量 例如: int *p中p就是指针变量。 需要注意:通常我们叙述时,会把指针变量简称为指针,实际上它们的含义并不一样

7,结构体指针 几个字节

定义结构体指针时,只会在栈中分配指针大小的空间给这个指针存放地址,一般也就是4个字节。你要是说的是会不会为结构体分配内存空间,那是肯定不会的,为结构体申请分配空间要用malloc或new在堆中申请,并将申请的内存首地址返回给结构体指针。
对于32位编译环境,指针占4个字节,int也是4个字节,因此那个结构体共8个字节

8,一个指针占用几个字节

指针其实就是地址, 与它所指的基类型无关, 更与C语言无关, 只与机器有关. 如果你的机器是16位寻址的, 那指针就是16位的, 如果是32位寻址的, 指针也是32位的. 较特殊的是老式的X86, 它是16位的机器, 但采用了分段寻址, 所以指针是两个16位合起来的(但与真正的32位又不同) 所以看一下你的C编译器是在什么平台下运行的. 两个16位(一个是段, 一个是偏移值). 只有在段内寻址, 才可能用16位, 即两个字节.
尋址空間是幾位就是幾位 說32位的肯定是四字節,因為32位本來就是四字節呀 同理,16位的就是二字節了
qwq
8位系统没见过,16位系统应该是4字节
指针就是个地址,可以用sizeof看看

文章TAG:指针多少字节指针  多少  字节  
下一篇