`char *p = "hello"; cout << p;` 輸出 `hello` 正常。但若 `char *p; cin >> p; cout << p;` 輸出記憶體地址(如 `0x7ffe...`)。
`operator<<` 對 `char*` 有特化重載,視為 C 風格字串,輸出內容而非地址——前提是指針指向以 `\0` 結尾的有效字串。
// 1. 使用字元陣列(棧上分配,自動管理)
char buf[100];
cin >> buf; // 自動加 \0,防溢出建議用 cin.getline(buf, 100)
cout << buf; // 輸出字串內容
// 2. 動態分配
char *p = new char[100];
cin >> p;
cout << p;
delete[] p;
// 3. 現代 C++:std::string(推薦)
std::string s;
cin >> s; // 或 getline(cin, s)
cout << s;