Mengakses Tatasusunan Menggunakan Indeks[array] dalam C dan C
Pertimbangkan coretan kod berikut:
int arr[] = {1, 2, 3}; 2[arr] = 5; // Does this compile? assert(arr[2] == 5); // Does this assertion fail?
Sesetengah penemuduga mungkin bertanya mengapa coretan kod ini menyusun dan melaksanakan tanpa ralat.
Memahami Kod
Ungkapan 2[arr] bersamaan dengan *(2 arr). Oleh kerana penambahan adalah komutatif dalam C dan C , susunan hujah kepada [] tidak penting. Oleh itu, 2[arr] mengakses elemen ketiga arr tatasusunan dengan berkesan.
Adakah Ini Dijamin oleh Spesifikasi Bahasa?
Ya. Piawaian C dan C secara eksplisit menyatakan tingkah laku ini:
Oleh itu, mengakses tatasusunan menggunakan indeks[array] dijamin oleh spesifikasi bahasa, malah jika ia kelihatan luar biasa atau kontra-intuitif.
Atas ialah kandungan terperinci Adakah `2[arr]` Berfungsi dalam C dan C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!