Rumah > pembangunan bahagian belakang > C++ > Mengapakah `t`, `&t[0]` dan Penunjuk ke `t` Mempunyai Alamat Yang Sama?

Mengapakah `t`, `&t[0]` dan Penunjuk ke `t` Mempunyai Alamat Yang Sama?

Susan Sarandon
Lepaskan: 2024-11-26 08:12:09
asal
182 orang telah melayarinya

Why Do `t`, `&t[0]`, and a Pointer to `t` Have the Same Address?

Mengapa t, &t[0], dan t Ditukar kepada Penunjuk Mempunyai Alamat Yang Sama

Susun atur ialah blok memori bersebelahan mengandungi elemen jenis data yang sama. Apabila anda mengisytiharkan tatasusunan, pengkompil memperuntukkan blok memori dan mencipta penunjuk kepada setiap elemen dalam blok itu.

Kes 1: t dan &t[0]

Apabila anda menggunakan t sendiri (tanpa sebarang subskrip), ia mengalami penukaran tatasusunan ke penuding, yang menjana penuding kepada elemen pertama tatasusunan. Tingkah laku ini bersamaan dengan menggunakan &t[0], yang secara eksplisit mengembalikan alamat elemen pertama. Oleh itu, t dan &t[0] mempunyai nilai yang sama.

Kes 2: &t

Walau bagaimanapun, apabila anda menggunakan operator & pada t, ia tidak mencetuskan penukaran tatasusunan ke penuding. Sebaliknya, &t mengambil alamat t itu sendiri secara langsung, menghasilkan penuding kepada keseluruhan tatasusunan.

Dalam ingatan, elemen pertama tatasusunan dan permulaan tatasusunan berada di lokasi yang sama. Oleh itu, penunjuk t, &t[0] dan u (yang merupakan penunjuk kepada t) semuanya mempunyai alamat yang sama.

Penjelasan Output:

Yang diberikan kod menunjukkan tingkah laku ini:

int t[10];
int * u = t;

cout << t << " " << &t << endl;
cout << u << " " << &u << endl;
Salin selepas log masuk

Output:

0045FB88 0045FB88
0045FB88 0045FB7C
Salin selepas log masuk

Output menunjukkan bahawa t, &t[0], dan u mempunyai nilai yang sama (0045FB88), mengesahkan kesetaraan mereka sebagai penunjuk.

Atas ialah kandungan terperinci Mengapakah `t`, `&t[0]` dan Penunjuk ke `t` Mempunyai Alamat Yang Sama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan