Rumah >pembangunan bahagian belakang >C++ >Mengapa Menambah Penunjuk Integer dalam C Meningkatkan Alamat sebanyak 4 Bait?
Mengapa Penambahan Penunjuk int Mempengaruhi Alamat sebanyak 4 Bait
Dalam pengaturcaraan C, apabila nilai penuding int ditambah dengan 1, ia meningkat sebanyak 4 bait dan bukannya 1 bait yang dijangkakan. Ini kerana pembolehubah penuding menyimpan alamat memori pembolehubah, dan pada kebanyakan seni bina, saiz integer ialah 4 bait.
Meningkatkan Penunjuk sebanyak 1 Alamat Kenaikan sebanyak 4
Apabila penuding int ditambah dengan 1, ia tidak menggerakkan penuding hanya dengan saiz satu bait (iaitu saiz watak). Sebaliknya, ia menggerakkannya mengikut saiz jenis data yang ditunjukkannya (dalam kes ini, int), yang bagi kebanyakan seni bina ialah 4 bait.
Justifikasi untuk Peningkatan Alamat sebanyak 4
Sebab kenaikan ini adalah untuk mengekalkan penjajaran yang betul semasa mengakses data. Menaikkan sebanyak 4 bait memastikan penunjuk sentiasa menunjuk ke permulaan lokasi memori yang boleh memegang nilai int. Jika penuding meningkat sebanyak 1 bait sahaja, ia berpotensi menghala ke lokasi memori yang tidak dijajarkan dengan betul, membawa kepada ralat atau kelakuan yang tidak dapat diramalkan.
Melawat 4 Bait int
Jika anda perlu melawati 4 bait int satu demi satu, anda boleh menghantar penuding int ke penunjuk char dan kemudian gunakan pengindeksan tatasusunan. Setiap bait int boleh diakses sebagai elemen tatasusunan aksara.
Contoh:
int a = 1; int *ptr = &a; char *cptr = (char *)ptr; for (int i = 0; i < sizeof(int); i++) { printf("%d\n", cptr[i]); }
Ini akan mencetak empat bait satu demi satu sebagai:
1 0 0 0
Atas ialah kandungan terperinci Mengapa Menambah Penunjuk Integer dalam C Meningkatkan Alamat sebanyak 4 Bait?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!