我们能不能改变2字节指针的大小,使它占用2个字节以上?有什么办法指针的大小可以从2个字节改变?
回答
当然,编译为32(或64)位平台:-)
指针的大小是特定的平台,这将是仅在16位平台2个字节(还没有被广泛地用于十数年 - 时下所有主流[更新](台式/膝上型计算机/服务器)[/更新]平台是至少32位)。
我想知道我是否应该在这方面使用远指针 – 2010-10-24 19:41:28
@fahad:你最好能够下车MS DOS和Turbo C. – 2010-10-24 19:47:05
好而简单:-0 – SmallChess 2010-10-25 03:48:05
如果您的指针大小为2个字节,这意味着您正在运行在16位系统上。
增加指针大小的唯一方法是使用一个32位或64位系统,而不是(这将意味着建在过去的15年左右的任何台式机或笔记本电脑)。
如果你正在使用16位的一些嵌入式设备上运行,你唯一的选择是切换到使用32位(或只是生活在你的指针是16位),其他设备。
当处理器被说成是“X位”(其中X为16,32,64,等等),即X指的是存储器地址寄存器的大小。因此,一个16位系统有一个2字节的存储器地址寄存器。
您不能将4个字节的地址转换为更小的任何地址,因为它会丢失指向它的部分地址。 (一个2字节的内存地址寄存器只能指向2^16 = 64KB的内存,而一个4字节的寄存器可以指向2^32 = 4GB的内存。)
您可以随时“升压” (即,在64位计算机上运行32位软件应用程序),因为指针范围没有丢失。但是你永远不能退下来,这就是为什么64位程序不能在32位系统上运行。
那么16位8086如何才能达到1Mb而不只是64k呢?如果只有'比特'是容易的。营销部门需要回答很多问题。 – Skizz 2010-10-25 08:45:49
一个指针作为一个数字,而不是只用于计算一个实际值的思考,这是在系统的存储器映射“插槽”的数量。
指针必须能够表示内存映射的最高位置。也就是说,它必须至少具有表示最高位置数量所需的字节数量。
在一个16位的系统中,可能的最高位置为0xFFFF(具有设置为1的所有位的16位号码)。一个指针也必须有16位,所以它可以达到这个数字。
推广,在一个X位系统中,指针将有X位。
可以存储一个指针在一个较大的变量,你可以在1号存储在char
以同样的方式,在int
,或unsigned long long
如果你想;但没有什么意义的:认为这一点,同样的方式一个较短的指针将无法达到最高的内存位置,一个更长的指针可以指向内存中实际不存在的内容,那么为什么要它?
此外,你必须“欺骗”编译器。如果在代码中使用指针表示法,编译器将始终使用正确数量的字节。不过,您可以指示编译器为另一个平台编译。
- 1. 有什么办法可以改变android的鼠标光标/指针风格吗?
- 2. 有什么办法可以在代码中改变BitmapImage的大小吗? (Silverlight)
- 3. 你可以改变指针指向的大小
- 4. 有什么办法可以获得c函数的大小吗?
- 5. 有没有什么办法可以从C++中的用户数组大小?
- 6. 类型转换指针来改变其大小(以字节为单位)
- 7. 有什么办法可以降低PNG大小?
- 8. 有没有什么办法可以改变mysql中所有表的列名大小写的情况下
- 9. 有没有办法以字节为单位获得PHP变量的大小?
- 10. 有没有办法改变MFMailCompose中的字体大小?
- 11. 有什么办法可以减少libreoffice中嵌入字体文件的大小?
- 12. 为什么java中的字符大小是2个字节?
- 13. 有什么办法可以防止人们改变ip?
- 14. 有什么办法可以配置窗口不改变焦点?
- 15. c3js:有没有办法改变字体大小?
- 16. 有什么办法可以让DIV自动调整大小来包装文字?
- 17. Freetype 2.有没有方法可以在加载后以字节为单位更改字体的大小?
- 18. 有没有什么办法可以改变group_vars/all下定义的变量值
- 19. 有什么办法可以从超类中省略变量吗?
- 20. 我是C新手,有人可以解释为什么这个字符串的大小可以改变吗?
- 21. 有什么办法可以在LaTeX中定义一个变量?
- 22. 有什么方法可以改变UIBarButtonItem的文字颜色吗?
- 23. 从指针数组中获取特定字节数组的大小为字节
- 24. 知道指针指向的有效元素大小的方法是什么?
- 25. 有没有什么办法以尽可能改变ALAssetLibrary的方式保存ALAsset?
- 26. 有什么办法可以创建Java Util栈的固定堆栈大小
- 27. 有什么办法可以减少TideSDK中捆绑包的大小?
- 28. 有什么办法可以不知道它会是什么大小的字符数组
- 29. 什么可以是我可以拥有的最大“POST”大小?
- 30. 有什么办法可以防止Java把我的双重变成指数值?
为什么你会想改变一个指针的大小? – casablanca 2010-10-24 19:37:36
我不知道他们为什么在考试中提出这样的问题。 – 2010-10-24 19:40:48
哦,我没有意识到这是一个考试问题。那么,Peter Torok的回答就是你现在要找的。 – casablanca 2010-10-24 19:45:22