[問題] call by pointer
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
C++
問題(Question):
//global variable
int g_One=1;
void foo(int *x) {
(*x)++; // 指向,並加1
}
void foo_2(int *y) {
y = &g_One;
}
int main()
{
int x1 = 5;
foo(&x1);
std::cout<<x1<<std::endl; //x1的值為6
foo_2(&x1);
std::cout<<x1<<std::endl; //x1的值還是為6,沒有變成1
system("pause");
return 0;
}
我想問一下,為什麼執行foo(&x1)後,區域變數int *x的值有回傳給x1
而執行foo_2(&x1)後,區域變數int *y的值卻沒回傳給x1呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.83.23.227
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1443447912.A.134.html
→
09/28 21:49, , 1F
09/28 21:49, 1F
推
09/28 21:49, , 2F
09/28 21:49, 2F
推
09/28 23:02, , 3F
09/28 23:02, 3F
→
09/29 11:36, , 4F
09/29 11:36, 4F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章
-3
16