Board logo

標題: 這程式又不知道出現什麼問題 [打印本頁]

作者: 花之慶次    時間: 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;
}

cout << j <<'\n';       // 錯誤, 因j已經消失
我想知道紅字部份中為什麼會錯誤??
作者: 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

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

區域變數的宣告
僅存活在局部區間
你已經跳出局間
回到較大的變數空間
正常狀態下 是不認得j是啥的
作者: keen    時間: 2007-1-1 21:07

低级错误,这就是不良的编程习惯造成的结果,学好编程的第一步就是良好的习惯,否则别想写出好软件!




歡迎光臨 香港 Xocat Forum 討論區 (http://p.xocat.com/p/) Powered by Discuz! 6.0.0