Re: [分享] C 語言常見誤解

看板C_and_CPP作者 (我要加入劍道社!)時間14年前 (2011/09/06 23:14), 編輯推噓3(306)
留言9則, 5人參與, 最新討論串2/2 (看更多)
※ 引述《Favonia (小西風最乖了*^^*)》之銘言: : 推 fon909:推,另外第5頁第2點是全域變數嗎?"很多實作"可以舉幾個例嗎? 09/06 22:47 foo.c: int p[100] = {0}; bar.c: #include <stdio.h> extern int* p; int main() { printf("%p\n", (void*)p); return 0; } 在 64bit Linux 上以 gcc 4.6.1 編譯後印出的結果為 nil 也就是 p 為空指標 這顯然不是一個陣列的正確位址 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.168.90.139 ※ 編輯: littleshan 來自: 118.168.90.139 (09/06 23:14)

09/06 23:15, , 1F
這種情況下,bar.c 的那個 p 應該要怎麼改寫才對呀?
09/06 23:15, 1F

09/06 23:16, , 2F
extern int p[100]; ?
09/06 23:16, 2F

09/06 23:18, , 3F
原來這麼簡單,我想到 pointer to array 去了...
09/06 23:18, 3F

09/06 23:22, , 4F
extern int p[];
09/06 23:22, 4F

09/06 23:30, , 5F
expert c 裡面 4.1 有針對這問題做詳細解說,
09/06 23:30, 5F

09/06 23:30, , 6F
extern int p[] 是宣告 p 為 array,維度定義在其他地方
09/06 23:30, 6F

09/06 23:31, , 7F
了解,感謝大好人 :D
09/06 23:31, 7F

09/06 23:37, , 8F
吳建恆
09/06 23:37, 8F

09/07 08:45, , 9F
原來如此,原文章內有a有p我在想是怎麼用會這樣,謝謝回答。
09/07 08:45, 9F
文章代碼(AID): #1EPZZ1TC (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1EPZZ1TC (C_and_CPP)