[問題] 全域變數

看板C_and_CPP作者 (小涼)時間12年前 (2012/04/20 15:34), 編輯推噓3(307)
留言10則, 6人參與, 最新討論串2/3 (看更多)
全域變數的問題 如下 int x=1,y=1,z=z; int v=x*y*z; double total[v]; void main(){ } 上述的 xyz 我會做改變 compiler後 關於 v 出現 "initializer element is not constant" total[v] 出現 "variable-size type declared outside of any function" 我將 v 給一個常數 才可以過 total[v]則不行 兩邊的v 要都給一個常數 才都過 我以為全域跟區域變數一樣 有宣告 可以間接給數值(如上) 請問是兩著差在哪裡? 還是我哪個觀念錯? 因為我需要他們是外部變數 (我是寫成專案的方式) 所以把它們寫成全域函數 而我希望 v 是隨我想要 xyz 變 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.120.96 ※ 編輯: scws 來自: 140.115.120.96 (04/20 15:34)

04/20 16:00, , 1F
z=z,這個倒是滿創新的,宣告動態陣列不是這樣用的吧XD
04/20 16:00, 1F

04/20 16:04, , 2F
z=z ...很有趣
04/20 16:04, 2F

04/20 16:22, , 3F
double *total=new double[v];
04/20 16:22, 3F

04/20 18:30, , 4F
你是用 C 還是 C++, c++ 有很多 container 可以用,
04/20 18:30, 4F

04/20 18:31, , 5F
例如找個 vector 來用, 沒有這些問題。
04/20 18:31, 5F

04/20 23:45, , 6F
我還是覺得程式裡不要有全域變數比較好....,做好是將要用到
04/20 23:45, 6F

04/20 23:47, , 7F
的資料用個物件包起來,不然當你程式一寫大,全域變數會搞死
04/20 23:47, 7F

04/20 23:47, , 8F
自己....
04/20 23:47, 8F

04/20 23:55, , 9F
... cout不也是全域變數嗎!? (無全域比較好的意思
04/20 23:55, 9F

04/20 23:57, , 10F
^變數
04/20 23:57, 10F
文章代碼(AID): #1FaH5_X8 (C_and_CPP)
討論串 (同標題文章)
以下文章回應了本文
完整討論串 (本文為第 2 之 3 篇):
問題
3
10
文章代碼(AID): #1FaH5_X8 (C_and_CPP)