Mengakses array 2-D (integer dan array karakter)

Nov 01 2020

Harap pertimbangkan kode di bawah ini:

char arr[3][10]={"white","red","blue"};
cout<<arr[2];  //output 1
int brr[3][3]={1,2,3,4,5,6,7,8,9};
cout<<brr[2];  //output 2

cout<<*brr[2];

Output 1: putih, pada dereferensi itu memberikan w sebagai output

Output 2: alamat heksadesimal (0x28 .....)

Output 3: Baris terakhir elemen pertama 7

Saya bingung mengapa ada perbedaan output dalam array bilangan bulat dan karakter.

Jawaban

2 TedLyngmo Nov 01 2020 at 07:22

Ketika Anda memberikan pointer, itu akan menggunakan std::ostream& operator<<( const void* value );kelebihan beban dan menampilkan alamat yang ditunjuk oleh value.

Perbedaannya adalah itu std::ostream& operator<<(std::ostream& os, const char* s)adalah kasus khusus dan itu akan membedakan sdan mengeluarkan chars sampai \0ditemukan. Selama tidak \0ditemukan, itu akan melangkah smaju.