Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我开始阅读一些关于 C 中指针的文章,但我有一个我不明白的例子。以下代码的输出应该是什么......?
main() { char far *s1 ,*s2; printf("%d,%d",sizeof(s1),sizeof(s2)); }
输出-4,2
据我说,两个 sizeof() 函数返回的值都应该是 4,因为远指针有 4 字节地址。
但解决方案手册中的答案是 4,2。谁能解释一下??谁能解释一下>???
这和写作一样
char far *s1; char *s2; the "far" is not distributed across all variables, e.g. char far *s1, ch;
far 在普通字符 ch 上毫无意义。
因此 s2 不是“远”指针,而是作为“近”指针处理,它在您的目标中为 16 位宽。