【发布时间】:2016-01-27 09:59:05
【问题描述】:
我认为我对指针有相当的了解,直到我决定复习一些所谓的琐碎示例。
我知道的一件事是,在声明数组时说:
int arr[2] {3, 5};
arr 将保存数组中第一个元素的值,因此尝试打印 (cout << arr) 显然会给出arr[0] 的地址。即使认为我的程序使用指针它仍然相似。
我的问题是为什么我可以打印h 并将bonjour 作为输出,但我不能对p 做同样的事情?
看起来当我增加 h++ 并再次打印时,我得到了 onjour。指针与char 有何不同?
#include <iostream>
#include <string>
int main()
{
char* h = "bonjour";
int k[4]{3, 4, 5, 6};
int * p = k;
std::cout << "Hello, "<< h << "!\n";
}
【问题讨论】:
-
将字符数组输出为字符串是如此普遍,以至于
const char *的