看板 C_and_CPP 關於我們 聯絡資訊
#include<stdio.h> #include<stdlib.h> int main() {int x=0; scanf("%d",&x); int F[x]={0}; F[0]=0;F[1]=1; for(int i=2;i<x;i++) { F[i]=F[i-1]+F[i-2]; printf("F[%d]=%d\n",i,F[i]); } system("pause"); } 我想問一下,我在Dev c++執行時F[x]={0}這行會出錯誤,之前好像有聽說不能在 陣列裡面的index放變數,但不知道為什麼?有人能幫我解釋嗎? 但我改成F[x]的話就可以執行了,是放變數的話不能初始化嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.70.220.119
loveme00835:...你有看編譯器告訴你什麼問題嗎 ? 用 {} 初始化編譯 11/07 00:02
loveme00835:器要知道你陣列有幾個元素, 他才好依序給值, 其餘的補 11/07 00:02
loveme00835:預設值, VLA 的長度未知, 當然不能叫編譯器幫我們初始 11/07 00:03
loveme00835:化, 別用這種怪招... 11/07 00:03
loveme00835:動態配置 http://codepad.org/Rpi2Q9Gp 11/07 00:12
loveme00835:靜態配置 http://codepad.org/1PqAt4uH 11/07 00:12
loveme00835:因為你要印的陣列元素都會給他新值, 所以不必在前面給 11/07 00:13
loveme00835:他初始值也沒關係 11/07 00:13
loveme00835:不過搞清楚你現在是寫啥語言也是很重要, 你沒加 -std= 11/07 00:20
loveme00835:c99 這個選項, for 迴圈 header 定義變數是不合法的, 11/07 00:20
loveme00835:那個地方會過表示你現在寫的是 C++, 注意副檔名的差異 11/07 00:21
stupid0319:感覺原PO喜歡創新語法,學習怎麼正確使用用比較重要吧 11/07 00:26
stupid0319:很多東西等你慢慢理解記憶體就會了解了 11/07 00:27