Moh*_*bil 3 c++ string pointers
我已经知道指针指向一个内存地址,所以我可以用它来改变在该地址设置的值.像这样:
int *pPointer = &iTuna;
Run Code Online (Sandbox Code Playgroud)
pPointer这里有内存地址iTuna.所以我们可以pPointer用来改变价值iTuna.如果我打印pPointer内存地址被印刷,如果我打印*pPointer,则该值在iTuna获取打印
现在看这个程序
char* pStr= "Hello !";
cout<< pStr << endl;
cout<< *pStr << endl;
system("PAUSE");
return 0;
Run Code Online (Sandbox Code Playgroud)
这里有很多我不理解的东西:
在"你好!" 每个字母分别存储,指针保存一个存储器地址.那么如何pStr指向所有字母.
当我打印出来pStr时打印你好!,而不是内存地址.
当我打印出来时*pStr,打印出的H只是不是所有pStr指向的东西.
我真的无法理解这些是我的担忧.我希望有人可以向我解释这个广告是如何帮助我理解的
Ker*_* SB 10
"Hello !"是一个类型和值的数组.是指向其第一个元素的指针; 它的最后一个元素具有价值.char const[8]{ 'H', 'e', 'l', 'l', 'o', ' ', '!', 0 }pStr0
iostreams库中存在一个char const *参数重载,它将参数视为指向数组第一个元素的指针,并打印每个元素直到遇到零.(用口语说法的"以空字符结尾的字符串".)
取消引用指向数组第一个元素的指针可以得到数组的第一个元素,即'H'.这与之相同pStr[0].