Właśnie bawiłem się wskaźnikami i tablicami, kiedy pomyliłem się z tym kodem, z którym testowałem.C++ ampersand operator z tablicami znaków
#include <iostream>
using namespace std;
int main(void) {
char a[] = "hello";
cout << &a[0] << endl;
char b[] = {'h', 'e', 'l', 'l', 'o', '\0'};
cout << &b[0] << endl;
int c[] = {1, 2, 3};
cout << &c[0] << endl;
return 0;
}
że oczekuje się, że będzie to drukowanie trzy adresy (czyli od A [0], B [0] i C [0]). Ale wynik był następujący:
hello
hello
0x7fff1f4ce780
Dlaczego jest to, że w ciągu pierwszych dwóch przypadkach z char „&” daje cały łańcuch albo ja czegoś tu brakuje?