首页 > 解决方案 > 带指针的整数数组和字符数组

问题描述

我真的很想得到一些关于 c++ 中指针的帮助。看看下面的代码:

int array[3]={4,7,2};
int * a;

a = array;

char Carray[3]={'p','k','\0'};
char * c;

c = Carray;

cout << a << "\n";
cout << c << "\n";

打印 a 按预期返回数组第一个元素的地址,即 4。

但是打印 c 应该给出 Carray 的第一个元素的地址,即 p,但在这种情况下它给出了整个字符串,即 'pk'。我们还没有在这里使用值运算符 *。

如果有人可以向我解释这一点,那就太好了

标签: c++arrayspointers

解决方案


这是因为std::cout视为char*C 风格的字符串。如果您需要地址,您可以尝试:

std::cout << (void *) c;

推荐阅读