Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么打印char指针和int指针会产生不同的结果? const char*arr[3]; arr[0]=“你好”; arr[1]=“C++”; arr[2]=“世界”; 对于(int i=0;i字符数组。当然,你的解释是正确的,但可能OP的混淆起源于注意到 char */Cux>是如何称呼的。也许他们需要理解空终端。ted字符串是由cout以一种特殊的方式解释的。@RobertoCaboni我喜欢Kamil在这方面的回答。真遗憾,因为你是第一个来的!:) const char* arr[3]; arr[0] = "Hello"; arr[1] = "C++"; arr[2] = "World"; for (int i = 0; i < 3; i++) { cout << arr[i]; } int* pInt[3]; for (int i = 0; i < 3; i++) { pInt[i] = &i; cout << pInt[i] << endl; }_C++ - Fatal编程技术网

为什么打印char指针和int指针会产生不同的结果? const char*arr[3]; arr[0]=“你好”; arr[1]=“C++”; arr[2]=“世界”; 对于(int i=0;i字符数组。当然,你的解释是正确的,但可能OP的混淆起源于注意到 char */Cux>是如何称呼的。也许他们需要理解空终端。ted字符串是由cout以一种特殊的方式解释的。@RobertoCaboni我喜欢Kamil在这方面的回答。真遗憾,因为你是第一个来的!:) const char* arr[3]; arr[0] = "Hello"; arr[1] = "C++"; arr[2] = "World"; for (int i = 0; i < 3; i++) { cout << arr[i]; } int* pInt[3]; for (int i = 0; i < 3; i++) { pInt[i] = &i; cout << pInt[i] << endl; }

为什么打印char指针和int指针会产生不同的结果? const char*arr[3]; arr[0]=“你好”; arr[1]=“C++”; arr[2]=“世界”; 对于(int i=0;i字符数组。当然,你的解释是正确的,但可能OP的混淆起源于注意到 char */Cux>是如何称呼的。也许他们需要理解空终端。ted字符串是由cout以一种特殊的方式解释的。@RobertoCaboni我喜欢Kamil在这方面的回答。真遗憾,因为你是第一个来的!:) const char* arr[3]; arr[0] = "Hello"; arr[1] = "C++"; arr[2] = "World"; for (int i = 0; i < 3; i++) { cout << arr[i]; } int* pInt[3]; for (int i = 0; i < 3; i++) { pInt[i] = &i; cout << pInt[i] << endl; },c++,C++,这里的pInt[n]是一个int*或整数指针。您正在分配一个地址(&i),因此它会打印一个地址 如果要打印该值,需要执行*pInt[i]来取消指针的引用 为什么不同 因为有一个特殊的重载,它打印const char*指向的字节的内容 没有std::ostream::operator将标题集中在问题上。学习很好,但它没有手头的问题那么重要。回答你的问题吗?提示:const char*arr[]={“Hello”,“C++”,“World”};更好,了解一下。然后你可以为(auto&s:arr)做,

这里的
pInt[n]
是一个
int*
或整数指针。您正在分配一个地址(
&i
),因此它会打印一个地址

如果要打印该值,需要执行
*pInt[i]
来取消指针的引用

为什么不同

因为有一个特殊的重载,它打印
const char*
指向的字节的内容


没有
std::ostream::operator将标题集中在问题上。学习很好,但它没有手头的问题那么重要。回答你的问题吗?提示:
const char*arr[]={“Hello”,“C++”,“World”};
更好,了解一下。然后你可以为(auto&s:arr)做
,它是超级简单的。流插入操作符,注意到,在C++中,在大多数情况下,你宁愿使用 STD::String  >字符数组。当然,你的解释是正确的,但可能OP的混淆起源于注意到 char */Cux>是如何称呼的。也许他们需要理解空终端。ted字符串是由
cout
以一种特殊的方式解释的。@RobertoCaboni我喜欢Kamil在这方面的回答。真遗憾,因为你是第一个来的!:)
const char* arr[3];

arr[0] = "Hello";
arr[1] = "C++";
arr[2] = "World";
for (int i = 0; i < 3; i++) {
    cout << arr[i];
}
int* pInt[3];
for (int i = 0; i < 3; i++)
{
    pInt[i] = &i;
    cout << pInt[i] << endl;
}