[問題] 函式與全域指標變數
開發平台為 Visual Studio 2005
語言為c++ 遇到了一個我不知道該怎麼解釋的情況 請各位大大指點指點
以下為程式碼:
#include <iostream>
using namespace std;
char* aaa;
void bb(){
char dd[1]; char* dd_P=dd;
dd_P[0]='C';
aaa=dd_P;
//cout<<" 0::"<<aaa[0];
}
void main(){
bb();
cout<<" 1::"<<aaa[0];
cout<<" 2::"<<aaa[0];
cout<<" 3::"<<aaa[0];
system("pause");
}
若紅色那行不註解掉 則輸出為 0::C 1::C 2::C 3::C
若註解掉 則輸出為 1::C 2:: (亦即值後來會消失)
問題一、請問為何會發生這種現象(註解與不註解那行的差異性)呢?
問題二、在註解掉的情況下 若我想要強制讓值不消失 該怎麼處理會比較好 比較漂亮?
先感謝回應的大大了 <(_ _)>
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.165.54.207
※ 編輯: Magic0325 來自: 218.165.54.207 (06/03 17:05)
推
06/03 17:06, , 1F
06/03 17:06, 1F
→
06/03 17:08, , 2F
06/03 17:08, 2F
→
06/03 17:13, , 3F
06/03 17:13, 3F
推
06/03 17:14, , 4F
06/03 17:14, 4F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章