【发布时间】:2013-07-12 15:55:29
【问题描述】:
我开始阅读一些关于 C 中指针的文章,但我有一个我不理解的例子。 以下代码的输出应该是什么??
main()
{
char far *s1 ,*s2;
printf("%d,%d",sizeof(s1),sizeof(s2));
}
输出-4,2
根据我的说法,两个 sizeof() 函数返回的值都应该是 4,因为远指针有 4 字节地址。
但解决方案手册中的答案是 4,2。谁能解释一下?? 谁能解释一下>???
【问题讨论】:
-
必须是旧书/旧文章(?)
-
这不是有效的 C++,
sizeof返回一个无符号值。 -
far是 1980 年代和 8086 CPU 的非标准时代错误。 -
和
char far* s1; char * s2;一样 -
如果你有一个编译器可以使用
far,你可能应该考虑升级到比 20 年前发布的更近的东西。