[英]about Pointers in C
我開始閱讀一些有關C語言中指針的文章,並且有一個我不理解的示例。 以下代碼的輸出應該是什么?
main()
{
char far *s1 ,*s2;
printf("%d,%d",sizeof(s1),sizeof(s2));
}
輸出-4,2
據我說,兩個sizeof()函數返回的值應該為4,因為far指針的地址為4字節。
但是解決方案手冊中的答案是4,2。 誰能解釋一下? 任何人都可以解釋> ???
和寫作一樣
char far *s1;
char *s2;
the "far" is not distributed across all variables, e.g.
char far *s1, ch;
普通字符ch遠遠沒有意義。
因此,s2不是“遠”指針,而是作為“近”指針處理的,它在目標中為16位寬。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.