[問題] 回傳區域變數的位址
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
DEV C++
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
問題(Question):
回傳區域變數的位址
餵入的資料(Input):
預期的正確結果(Expected Output):
錯誤結果(Wrong Output):
程式碼(Code):(請善用置底文網頁, 記得排版)
#include<iostream>
using namespace std;
int *f(int x){
int y;
y=x+10;
return &y;
}
int g(int y){
int x;
x=y-10;;
return x;
}
int main(){
int *x,y;
x=f(10);
y=g(*x);
cout<<*x<<" "<<y<<endl;
system("pause");
return 0;
}
補充說明(Supplement):
執行結果是
10 10
*x為什麼是10呢?
編譯的時候有出現回傳區域變數位址的警告
我預期*x是20
到底哪裏出錯了呢~?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.246.201.24
→
03/11 17:31, , 1F
03/11 17:31, 1F
→
03/11 17:31, , 2F
03/11 17:31, 2F
→
03/11 17:32, , 3F
03/11 17:32, 3F
→
03/11 17:37, , 4F
03/11 17:37, 4F
推
03/11 18:09, , 5F
03/11 18:09, 5F
推
03/11 19:08, , 6F
03/11 19:08, 6F
→
03/11 19:25, , 7F
03/11 19:25, 7F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章