我正在尝试理解C++中的指针和数组。我注意到在下面的代码中,输出a
可以正确地给出array
中第一个元素的地址,但输出c
却给出了pk
而不是一个地址。
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";
这是寻找 Carray
第一个元素地址的不正确方法吗?还是这与 cout
对整数和字符数组指针的解释方式有些怪异。
输出:
Ox23fe30
pk
\0
结尾的char
数组,并且cout
假定您传递给它一个C风格字符串。因此,获取第一个元素地址的方法是正确的,但是对于int
和char
,cout
对该地址的解释不同。 - triple_r