[問題] 全域變數的問題

看板C_and_CPP作者 (左)時間13年前 (2012/07/22 22:56), 編輯推噓0(0012)
留言12則, 2人參與, 最新討論串1/3 (看更多)
兩段程式 : #include<stdio.h> #include<stdlib.h> int main() { char str1[] = "This is a string"; char *p = str1; char **pp; *pp = p; printf("p = %s\n" , p); printf("*pp = %s\n", *pp); system("PAUSE"); return 0; } ____________________________________________________________________________ #include<stdio.h> #include<stdlib.h> char str1[] = "This is a string"; char *p = str1; char **pp; int main() { *pp = p; printf("p = %s\n" , p); printf("*pp = %s\n", *pp); system("PAUSE"); return 0; } 想請問為何將char宣告在int main之外 跑同樣的程式就會出現錯誤 跟甚麼生命週期有關係嗎?還是純粹語法以及記憶體空間的問題 -- 這年頭沒真相沒得混 ORZ..... http://ppt.cc/S!iF -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.45.251.233

07/22 23:03, , 1F
兩段程式其實都有問題
07/22 23:03, 1F

07/22 23:03, , 2F
正確寫法是 *pp = p; 改成 pp = &p;
07/22 23:03, 2F

07/22 23:08, , 3F
那如果假設都改成*pp=&p這樣兩個會有何不同@@
07/22 23:08, 3F
※ 編輯: a0916327869 來自: 114.45.251.233 (07/22 23:09)

07/22 23:11, , 4F
*pp=&p 編譯應該就不會過了…
07/22 23:11, 4F

07/22 23:12, , 5F
你原本的 *pp = p; 其實就是置底文的十三戒第三條
07/22 23:12, 5F

07/22 23:47, , 6F
我是用DEV C++去編譯他有給我過 ORZ只是執行會錯誤
07/22 23:47, 6F

07/22 23:48, , 7F
只有變數在int main外面時會錯
07/22 23:48, 7F

07/22 23:48, , 8F
這就是我討厭dev c++的原因了 (咦)
07/22 23:48, 8F

07/22 23:49, , 9F
有去看置底文了 感謝XD
07/22 23:49, 9F

07/22 23:50, , 10F
那J大都用甚麼去編譯 VISUAL C++會跟DEV差很多嗎?
07/22 23:50, 10F

07/22 23:51, , 11F
我主要用visual C++與code::blocks
07/22 23:51, 11F

07/22 23:51, , 12F
一定要用dev C++的話,請用Orwell's Dev-C++
07/22 23:51, 12F
文章代碼(AID): #1G31IR7- (C_and_CPP)
文章代碼(AID): #1G31IR7- (C_and_CPP)