簡體   English   中英

關於C中的指針

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM