Memahami Alamat Tatasusunan dan Penukaran Penunjuk
Dalam C , tatasusunan dan penuding berkait rapat, tetapi memahami hubungan mereka boleh menjadi rumit. Mari terokai coretan kod berikut untuk menyelidiki topik:
int t[10]; int * u = t; cout << t << " " << &t << endl; cout << u << " " << &u << endl;
Output yang anda perhatikan ialah:
0045FB88 0045FB88 0045FB88 0045FB7C
Mentafsir Output
Alamat u (0045FB88) boleh difahami, kerana ia menunjuk kepada elemen pertama tatasusunan t. Walau bagaimanapun, bahagian yang mengelirukan timbul apabila menganalisis ungkapan yang melibatkan t.
Penukaran Tatasusunan-ke-Tuding lwn. Alamat Tatasusunan
Kunci untuk memahami tingkah laku ini terletak pada cara t digunakan dalam ungkapan .
Oleh itu, &t bukanlah penunjuk kepada elemen pertama tatasusunan tetapi sebaliknya penunjuk kepada keseluruhan tatasusunan.
Lokasi Memori
Dalam ingatan, elemen pertama tatasusunan dan permulaan tatasusunan menduduki yang sama lokasi. Inilah sebabnya mengapa t, &t[0] dan &t semuanya mempunyai nilai yang sama.
Kesimpulannya, ungkapan yang melibatkan t menunjukkan perbezaan antara penukaran tatasusunan-ke-penunjuk dan secara eksplisit mengambil alamat tatasusunan menggunakan pengendali &. Memahami perbezaan ini adalah penting untuk berfungsi dengan berkesan dengan tatasusunan dan penunjuk dalam C .
Atas ialah kandungan terperinci Bagaimanakah Penukaran Tatasusunan-ke-Tuding dan Alamat-Operator (&) Mempengaruhi Alamat Tatasusunan dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!