我想了解C++中的指針和數組。我注意到,在下面的代碼中,輸出a
正確地給出了array
中第一個元素的地址,但是輸出c
給出了pk
而不是地址。字符數組指針與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";
這是不正確的方式找到的第一個元素在Carray
地址?或者這是cout
如何解釋整數和字符數組的指針的一些怪癖。
輸出:
Ox23fe30
pk
請向我們展示您從這些語句中獲得的輸出。 – turbulencetoo
C風格的字符串是以char char'\ 0'結尾的'char'數組,並且'cout'假設您傳遞了一個C風格的字符串。所以你得到第一個元素地址的方法是正確的,但'cout'對那個地址的解釋對於'int'和'char'是不同的。 –
除非你特別要求與C或類似的東西進行比較,否則不要用C標記你的C++問題 - 語言和他們慣用的答案可能會有很大的不同。 – crashmstr