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

老师讲的时候说是占有2个字节,后来我在VC上做了实验,不是2个字节,老师讲可能与电脑本身有关,它可能占电脑的一个字,现在电脑一般都是32位的,也许以前电脑是16位的所以占2个字节

第1个回答  推荐于2018-02-25
指针其实就是地址, 与它所指的基类型无关, 更与C语言无关, 只与机器有关. 如果你的机器是16位寻址的, 那指针就是16位的, 如果是32位寻址的, 指针也是32位的.
较特殊的是老式的X86, 它是16位的机器, 但采用了分段寻址, 所以指针是两个16位合起来的(但与真正的32位又不同)
所以看一下你的C编译器是在什么平台下运行的.
二个字节长度, 太老了吧. 即使TC, 一般也是上面说的, 两个16位(一个是段, 一个是偏移值). 只有在段内寻址, 才可能用16位, 即两个字节.本回答被提问者和网友采纳
第2个回答  推荐于2017-09-30

C语言规定一个指针占4个字节。


查看指针所占字节数可以用sizeof( )函数进行测试。如:

char a[] = "abcdefgh";
char *p = a;  // 定义一个指针变量,指向字符数组a
printf("%d\n", sizeof(p));  // 输出指针所占的字节数,输出4

第3个回答  2006-01-06
指针长度和运行程序的操作系统是有关系的,LZ的老师说是2在现在来说的确是错误的,一般编译器会把指针的长度定义为系统的字长(这点LZ应该坚持自己的想法呵呵),指针的长度在16位OS比如DOS上的确是2个字节,但是在32位的windows上,就是4位,很多老版本的C教材都是2个字节,这个不能笼统的说是错了,而是有它的历史原因在里面.所以LZ的老师应该多看看新版本的书籍了,教育应该和科技的发展接轨才可以呵呵~
第4个回答  2006-01-06
32位的电脑,整型、浮点型指针占4个字节,短整型2个,字符型1个,根据数据类型来。用sizeof函数也可以算出来。
第5个回答  2019-01-30

    指针占用多少字节,取决于所使用的编译器版本,编译器有16位、32位、64位之分,16位和32位编译器可以运行在32位操作系统上,而64位操作系统可以运行这三种编译器。

    16位编译器下,一个指针占用2字节;32位编译器下,一个指针占用4字节;64位下,一个指针占用8字节。

    当前(2019年1月)国内大部分电脑已经使用上了64位Windows操作系统,但Visual Studio等编程软件默认使用的编译器是32位编译器,因此最常见的情况是一个指针占用 4 个Byte。

    苹果的macOS系统自带clang编译器,默认是64位,因此通常在苹果电脑上编写c语言程序时,指针占用8个字节。

相似回答