在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个
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-05-04
现在都是32位和64位系统了,所以要么是4个,要么就是8个,所以你可以写一段c程序来测试,
看sizeof(char *)值到底是多少就知道了。

sizeof(int *)==sizeof(double *)==sizeof(char *)
第2个回答  2013-05-04
和具体的编译器选项有关系,如果编译器编译时选择的是一款16位的CPU那么指针就是2个字节,32位的CPU就是4个字节,64位则是8个字节。特别的,大部分编译器关于CPU的选项包含三个部分,CPU的类型-CPU的指令类型-操作系统类型,3者共同决定了目标CPU是多少位
第3个回答  2013-05-04
测试不就得了,但是据我所知,好像不同的系统和不同的软件会产生差异的说!!!
第4个回答  2013-05-04
占四个字节

C语言中一个指针占用多少字节
一个指针变量在内存中占两个字节(small模式编译),一个指针变量在内存中占四个字节(32位机器上),一般都是32位机器的,所以四个字节咯。指针即为地址,指针几个字节跟语言无关,而是跟系统的寻址能力有关。指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。要搞清一个指针需要...

一个指针类型的简单变量占用内存中的字节数位什么?
一个指针变量在内存中占两个字节(small模式编译),一个指针变量在内存中占四个字节(32位机器上),一般都是32位机器的,所以四个字节。在C语言中,允许用一个变量来存放指针,这种变量称为指针变量。因此,一个指针变量的值就是某个内存单元的地址或称为某内存单元的指针。

c语言中,指针变量为何只占4字节?
一般指针占4个字节,如果是64位系统,它可描述的地址空间为0~2^64-1,如果是64位的编译器,指针占8个字节。

c语言中指针占多少个字节
如果是16位编译器,那么指针占2字节.如果是32位编译器,那么指针占4字节 如果是64位编译器 那么指针占8字节.即 指针位数和编译器位数相同.

在C语言中,double、long、unsigned、int、char类型数据所占字节数
在C语言中,不同数据类型所占用的内存字节数取决于编译器的位宽。对于16位编译器,char类型占用1个字节,指针变量char*占用2个字节;short int和int占用2个字节,unsigned int同样为2个字节;float占4个字节,double则需要8个字节;long和unsigned long各有4个字节。而对于32位编译器,char和指针char*...

在C语言中"char *p"占用多少内存空间
在C语言中指针是一个unsigned 类型的无符号数,其所占内存字节一般是和计算机的CPU字长是一致的,拿32位计算机来说,指针所占的内存空间一般为4个字节,不管char *还是int *抑或是float *,都是4个字节。程序员可以使用sizeof运算符获取数据类型或者某个变量的内存所占字节数。比如 printf("%d\\t%d\\...

c语言 指针
内存的基本单位是存储单元 一个存储单元占8bit,也就是1Byte 每一个存储单元都一个对应的地址 所谓地址,简单的将就是一个编号,可以理解为每个人的身份证号码一样 指针变量p和变量a的内存是在栈上创建的 两变量都占4Byte,即4个连续的存储单元 &p是指针p的首地址,也就是第一个存储单元的编号(...

C语言中 int long float double分别占用了多少个字节??
char*(即指针变量):2个字节(16位编译器)4个字节(32位编译器)8个字节(64位编译器)short int: 2个字节 int\/unsigned int:2个字节(16位编译器)4个字节(32\/64位编译器)long int: 4个字节 float: 4个字节 double: 8个字节 long double: 8\/10\/12\/16?long\/unsigned long:4个字节(...

C语言的int占几个字节,char占几个字节?
char :1个字节; char*(即指针变量):4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64位编译器); short int:2个字节; int:4个字节; unsigned int :4个字; float: 4个字节; double:8个字节; long:4个字节; long long:8个字节; unsigned ...

c语言int占几个字节
char*(即指针变量): 2个字节 short int : 2个字节 int: 2个字节 unsigned int : 2个字节 float: 4个字节 double: 8个字节 long: 4个字节 long long: 8个字节 unsigned long: 4个字节 2、32位编译器 char :1个字节 char*: 4个字节 short int : 2个字节 int: 4个字节 unsigned ...

相似回答
大家正在搜