6

私がテストしていたこのコードに混乱したとき、私はポインターと配列をいじっていました。

#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;
}

これにより、3 つのアドレス (a[0]、b[0]、および c[0]) が出力されると予想しました。しかし、結果は次のとおりでした。

hello
hello
0x7fff1f4ce780

char を使用した最初の 2 つのケースで、'&' が文字列全体を与えるのはなぜですか?

4

1 に答える 1