Video: Top 15 Advanced Excel 2016 Tips and Tricks 2024
Dalam pengaturcaraan C, jenis dan saiz pembolehubah ditemui terlebih dahulu dengan menyatakan pemboleh ubah tersebut sebagai jenis tertentu, tetapi juga dengan menggunakan kata kunci sizeof. Keterangan kedua pembolehubah, kandungannya, dapat dikumpulkan dengan membaca nilai variabel menggunakan fungsi bahasa C yang sesuai.
Keterangan ketiga pembolehubah adalah lokasi dalam memori. Anda mengumpul maklumat ini dengan menggunakan & operator dan placeholder% p, seperti ditunjukkan dalam O Pembolehubah, Jadi Adakah Anda Adakah?
O VARIABLE, SEBELUMNYA ART THOU?
#include int main () {char c = 'c'; int i = 123; terapung f = 98. 6; double d = 6. 022E23; printf ("Alamat 'c'% pn", & c); printf ("Alamat 'i'% pn", & i); printf ("Alamat 'f'% pn", & f); printf ("Alamat 'd'% pn", & d); kembali (0);}
Apabila operator & pembolehubah memboleh ubah, ia mengembalikan nilai yang mewakili alamat pembolehubah, atau lokasinya dalam ingatan. Nilai itu dinyatakan dalam heksadesimal. Untuk melihat nilai itu, watak penukaran% p digunakan, seperti ditunjukkan dalam O Pemboleh ubah, Jadi Adakah Anda Adakah?
Latihan 1 : Taipkan kod sumber dari O Variabel, Jadi Engkau Engkau? ke dalam editor anda. Bina dan lari.
Hasil yang dihasilkan oleh program yang dihasilkan dari Latihan 1 adalah unik, bukan sahaja untuk setiap komputer tetapi juga, berpotensi, untuk setiap kali program dijalankan.
Alamat 'c' 0x7fff5fbff8f Alamat 'i' 0x7fff5fbff8f8 Alamat 'f' 0x7fff5fbff8f4 Alamat 'd' 0x7fff5fbff8e8
Pembolehubah c disimpan di dalam memori di lokasi 0x7fff5fbff8ff -, 734, 799, 804, 671. Kedua-dua nilai adalah sememangnya remeh, sudah tentu; komputer menjejaki lokasi ingatan, yang baik-baik saja oleh saya.
Ilustrasi ini menunjukkan bagaimana alamat-alamat tersebut keluar dalam ingatan.
Unsur array individu mempunyai lokasi memori juga, seperti yang ditunjukkan dalam Lokasi Memori dalam Array di Jalur 10. Operator & awalan pembolehubah elemen tertentu, batuk alamat. Watak penukaran% p dalam fungsi printf () memaparkan alamat.
MEMORY LOCATIONS IN AN ARRAY
#include int main () {char hello [] = "Hello!"; int i = 0; sementara (hello [i]) {printf ("% c pada% pn", hello [i], & hello [i]); i ++;} return (0);}
Exercise 2 : Buat projek baru dengan menggunakan kod sumber yang ditunjukkan dalam Lokasi Memori dalam Array. Bina dan lari.
Sekali lagi, output lokasi memori adalah unik pada setiap komputer.
H pada 0x7fff5fbff8f0 e pada 0x7fff5fbff8f1 l pada 0x7fff5fbff8f2 l pada 0x7fff5fbff8f3 o pada 0x7fff5fbff8f4!di 0x7fff5fbff8f5
Tidak seperti contoh dari Latihan 1, alamat yang dihasilkan oleh Latihan 2 bersesuaian dengan ingatan, satu demi satu demi satu.
Latihan 3 : Kod sebuah program untuk memaparkan lima nilai dalam pelbagai int bersama-sama dengan alamat memori setiap elemen. Anda boleh menggunakan Lokasi Memori dalam Array untuk memberi inspirasi kepada anda, walaupun untuk gelung mungkin lebih mudah untuk kod.
-
Dengan cara ini, pengendali lokasi & ingatan perlu diketahui oleh anda. Ia digunakan oleh fungsi scanf (), yang memerlukan alamat pembolehubah, bukan pembolehubah itu sendiri. Itu kerana scanf () meletakkan nilai di lokasi memori secara langsung. Bagaimana? Dengan menggunakan petunjuk, tentu saja!
-
& operator juga bitwise operator AND; Walau bagaimanapun, pengkompil cukup bijak untuk memberitahu apabila & awalan pemboleh ubah dan apabila & adalah sebahagian daripada persamaan matematik binari.