推介:| Web Hosting | 外賣系統 | Server colocation | Web Shop System | Makeup course |

查看完整版本: 這程式又不知道出現什麼問題

花之慶次 2006-12-12 23:54

這程式又不知道出現什麼問題

#include<iostream>
#include<stdlib.h>
using namespace std;
const float PI=3.14158;        // PI為全域變數
int main()
{
     int i=5;                 // i為局部變數
     {
          int j=10;           // j為局部變數
          cout << 10*PI+i*j << '\n';
     }
     cout << j <<'\n';       // 錯誤, 因j已經消失
     system("pause");
     return 0;
}

[color=Red]cout << j <<'\n';       // 錯誤, 因j已經消失[/color]
我想知道紅字部份中為什麼會錯誤??:wondering::wondering:

jayzhou_2046 2006-12-13 09:20

{
          int j=10;           // j為局部變數
          cout << 10*PI+i*j << '\n';
     }

j是以上block的"局部變數" (local variable)
離開此block後, j便不再存在!
bcc55 編譯的錯誤訊息如下:

Error E2451 tst7.cpp 12: Undefined symbol 'j' in function main()
*** 1 errors in Compile ***

花之慶次 2006-12-14 23:57

我想問你用的是不是Visual C++??
我用的則是Dev-C++
雖然我本身不是做這一行, 不過交流一下吧

jim.nil 2006-12-15 04:22

yap, local variable only lives in {}........

jayzhou_2046 2006-12-15 09:48

[quote]原帖由 [i]花之慶次[/i] 於 2006-12-14 11:57 PM 發表
我想問你用的是不是Visual C++??
我用的則是Dev-C++
雖然我本身不是做這一行, 不過交流一下吧 [/quote]
花之慶次兄, 小弟用的是
Borland的bc55 free commandline tools,
貪佢係greenware, 唔使install落部pc度,
放落usb手指就可以呢度去果度去!

bribelu 2006-12-15 17:10

區域變數的宣告
僅存活在局部區間
你已經跳出局間
回到較大的變數空間
正常狀態下 是不認得j是啥的

keen 2007-1-1 21:07

低级错误,这就是不良的编程习惯造成的结果,学好编程的第一步就是良好的习惯,否则别想写出好软件!
頁: [1]
查看完整版本: 這程式又不知道出現什麼問題