作者littleshan (我要加入劍道社!)
看板C_and_CPP
標題Re: [分享] C 語言常見誤解
時間Tue Sep 6 23:14:01 2011
※ 引述《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)
→ james732:這種情況下,bar.c 的那個 p 應該要怎麼改寫才對呀? 09/06 23:15
→ firejox:extern int p[100]; ? 09/06 23:16
→ james732:原來這麼簡單,我想到 pointer to array 去了... 09/06 23:18
推 tropical72:extern int p[]; 09/06 23:22
→ tropical72:expert c 裡面 4.1 有針對這問題做詳細解說, 09/06 23:30
→ tropical72:extern int p[] 是宣告 p 為 array,維度定義在其他地方 09/06 23:30
→ james732:了解,感謝大好人 :D 09/06 23:31
推 purpose:吳建恆 09/06 23:37
推 fon909:原來如此,原文章內有a有p我在想是怎麼用會這樣,謝謝回答。 09/07 08:45