<分区>
我正在学习 C++ 的基础知识,但在尝试破译以下有关字符和指针的内容时总是碰壁。其中包括行注释,让我了解目前正在发生的事情。鉴于我有如下代码:
using namespace std;
int main()
{
//String literal is an array of chars
//Array address gets assigned to a ptr of char
char myletters[] = {'h','i'};
char* lp = myletters;
cout << *lp << endl;
//Logically equivalent to above statements
char* letters2 = "hi";
cout << *letters2 << endl;
//String literal turns into array of chars
//Array of chars gets assigned to a ptr of chars
//Each ptr of chars gets stored into letters array
char* letters[] = {"hi","hello"};
cout << *letters << endl;
}
我的输出将是:
h
h
hi
我的问题是:当我用final cout打印*letters的内容时,为什么得到的是字符串“hi”,而不是“hi”的地址或“hi”中第一个字符的地址?我知道 cout 的第一个用途是打印一个 char,最后一个 cout 是打印一个 char*,但我仍然想知道为什么它打印完整的字符串而不是我通常期望的指针地址。
谢谢。