Rumah >pembangunan bahagian belakang >C++ >Mengapa Menambah Penunjuk Integer Menambah 4 Bait Daripada 1?
Menambah Penuding Int: Mengapa Peningkatan 4-Bait?
Apabila bekerja dengan penuding, mungkin intuitif untuk menjangkakan peningkatan penunjuk int akan memajukan nilainya sebanyak 1 bait, seperti yang berlaku dengan tatasusunan. Walau bagaimanapun, dalam praktiknya, penambahan penunjuk int sebenarnya meningkatkan nilainya sebanyak 4 bait.
Sebab Peningkatan 4-Bait
Sebab bagi tingkah laku ini terletak pada saiz jenis data integer. Int biasanya menduduki 4 bait memori. Jika penuding int meningkat sebanyak 1 bait sahaja, ia akan menyebabkan penudingan kepada integer separa, yang akan menjadi karut.
Memahami Peningkatan Penunjuk
Kepada ilustrasikan, pertimbangkan perwakilan ingatan berikut:
[...| 0 1 2 3 | 0 1 2 3 | ...] [...| int | int | ...]
Di sini, setiap int menduduki 4 bait. Apabila penuding int bertambah sebanyak 1, logiknya masuk akal untuk ia beralih ke bahagian 4-bait seterusnya, seperti yang ditunjukkan di bawah:
[↓ ] [...| 0 1 2 3 | 0 1 2 3 | ...] [...| int | int | ...]
Ini memastikan bahawa penuding terus menghala ke integer yang sah.
Mengakses Bait Individu
Jika timbul keperluan untuk mengakses bait individu bagi integer, anda boleh menggunakan penunjuk char. Memandangkan char sentiasa mempunyai saiz 1 bait, anda boleh menggunakan penunjuk char* untuk menambah satu bait pada satu masa dan mengakses bait yang sepadan bagi integer.
Contoh:
int i = 0; int* p = &i; char* c = (char*)p; char x = c[1]; // access the second byte of the integer
Nota Tambahan:
Ia penting perlu diingat bahawa penambahan penunjuk void* tidak dibenarkan, kerana void ialah jenis yang tidak lengkap dan tidak mempunyai saiz yang ditentukan.
Atas ialah kandungan terperinci Mengapa Menambah Penunjuk Integer Menambah 4 Bait Daripada 1?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!