Isi kandungan:
Video: [SekolahIT] Dasar Pemrograman 02 (Bahasa C)-Tentang Algoritma Pemrograman 2024
Dalam pengaturcaraan C, anda boleh mengacaukan pembolehubah dalam kod anda dengan mengubahnya menjadi jenis lain, memberikan nama baru sama sekali, atau menghantar ejaan ke atas pemboleh ubah untuk memenuhi keperluan anda, baik atau tidak.
Typecasting into unbelief
Kapan pembolehubah terapung bukan float? Apabila ia adalah tipiran ke dalam int, tentu saja. Caranya boleh dibuat di C dengan menggunakan typecast. Sebagai contoh:
(int) hutang
Dalam baris sebelumnya, variable float hutang adalah typecast kepada nilai int. Int dalam kurungan mengarahkan pengkompil untuk merawat nilai hutang sebagai integer.
Kenapa ada yang mahu berbuat demikian?
Kerana kadang-kadang fungsi memerlukan jenis pemboleh ubah tertentu dan jenis itu tidak tersedia. Daripada menukar dan menyelaraskan beberapa jenis pembolehubah dalam satu program, anda boleh menaipkan pemboleh ubah kepada jenis yang anda inginkan. Ia bukan tipuan biasa, tetapi ia sering diperlukan, seperti ditunjukkan dalam Yang Tidak Benar.
TIDAK PERNAH
#include int main () {int a, b; apungan c; printf ("Masukkan nilai pertama:"); scanf ("% d", & a); printf ("Masukkan nilai kedua:"); scanf ("% d", & b); c = a / b; printf ("% d /% d =%. 2fn", a, b, c); kembali (0);}
Latihan 1: Ketik kod sumber dari Itu Tidak Benar ke editor anda. Bina dan lari.
Berikut adalah contoh yang dijalankan dengan input dalam huruf tebal:
Masukkan nilai pertama: 3 Masukkan nilai kedua: 2 3/2 = 1. 00
Jelas sekali, adalah salah bahawa 3 รท 2 entah bagaimana akan menjadi 1. 50. Jika komputer mengatakan ia adalah 1. 00, komputer mestilah betul.
Atau mungkin komputer itu hanya keliru kerana dalam Talian 12 kod sumber, dua nilai int dibahagikan, dan hasilnya ditugaskan untuk mengapung. Bagaimanapun, itu tidak berfungsi, kerana membahagikan integer dengan integer dalam C menghasilkan integer sebagai hasilnya.
Nilai 1 adalah nilai integer yang paling hampir dengan 1. 50. Jadi, walaupun komputer salah, ia melakukan apa yang dikatakan kepadanya.
Latihan 2: Ubah suai kod sumber anda, ubah Line 12 untuk membaca
c = (float) a / (float) b;
Simpan perubahan itu. Bina dan lari menggunakan nilai yang sama seperti yang ditunjukkan. Inilah output baru:
Masukkan nilai pertama: 3 Masukkan nilai kedua: 2 3/2 = 1. 50
Lebih baik. Itulah kerana anda pembolehubah typecast a dan b dalam persamaan, sementara membenarkan compiler untuk merawatnya sebagai nombor terapung. Oleh itu, hasilnya adalah apa yang sepatutnya.
Cara membuat perkara baru dengan typedef
Anda boleh mendapatkan banyak masalah dengan kata kunci typedef.Ia boleh membuang kata-kata dan pengendali C yang biasa dari mereka yang konsisten ke dalam segala macam kerosakan.
THE PERILS OF TYPEDEF
#include typedef int stinky; stinky main () {stinky a = 2; printf ("Semua orang tahu bahawa"); printf ("% d +% d =% dn", a, a, a + a); kembali (0);}
Dalam Perils of typedef , pernyataan typedef di Line 3 mentakrif perkataan stinky menjadi sama dengan kata kunci int. Di mana sahaja anda boleh menggunakan int dalam kod, anda boleh menggunakan perkataan stinky sebaliknya, seperti yang ditunjukkan di Talian 5 dan 7.
Latihan 3: Gunakan kod sumber dari The Perils of typedef < untuk mencipta program baru, menunjukkan bahawa jenis pemboleh ubah bau sama dengan int. Bina dan lari. Dikehendaki, contoh dalam The Perils of
typedef agak bodoh; tiada programmer yang serius akan menubuhkan program yang sebenar seperti itu. Di mana typedef digunakan paling kerap adalah dalam menentukan struktur. Kenyataan typedef membantu mengurangkan keruntuhan aktiviti tersebut. Mencipta Struktur Cara Tradisional memperlihatkan bagaimana operasi struktur bersarang berfungsi, berdasarkan pengetahuan struktur:
MEMBUAT STRUKTUR CARA TRADISIONAL
struct id {char first [20]; char last [20];}; struct date {int month; int day; int year;}; struct human {struct id name; hari lahir tarikh struktur;};
Menggunakan
t ypedef untuk Menentukan Struktur menunjukkan bagaimana perisytiharan berlaku jika anda menaip struktur: MENGGUNAKAN
TYPEDEF UNTUK MENGUKUR STRUKTUR > typedef struct id {char first [20]; char terakhir [20];} peribadi; typedef struct date {int month; int day; int year;} kalendar; struct human {nama peribadi; hari jadi kalendar;}; Dalam Penyenaraian ini, id struktur adalah typedef'd dengan nama peribadi. Itu bukan nama berubah; ia adalah typedef. Ia sama seperti berkata, "Semua rujukan kepada struct struct kini sama dengan nama peribadi. "
Begitu juga, tarikh struktur adalah typedef'd ke kalendar. Akhirnya, dalam pengisytiharan struktur manusia, nama typedef digunakan bukannya definisi struktur yang lebih kompleks.
STRUKTUR NESTED
#include #include int main () {struct date {int month; int day; int year;}; struct human {char name [45]; hari lahir tarikh struktur;}; struct human president; strcpy (nama presiden, "George Washington"); presiden. hari lahir. bulan = 2; presiden. hari lahir. hari = 22; presiden. hari lahir. tahun = 1732; printf ("% s dilahirkan pada% d /% d /% dn", presiden, nama, presiden, hari lahir, bulan, presiden. kembali (0);}
Latihan 4
:
Gantikan nama ahli dalam struktur manusia dalam Struktur Nested dengan struktur bersarang. Namakan bahawa struktur id dan memilikinya mengandungi dua ahli, array array, pertama dan terakhir, untuk menyimpan nama pertama dan terakhir individu. Jika anda melakukan semuanya dengan betul, rujukan kepada nama presiden akan menjadi pembolehubah presiden. nama. pertama
dan presiden. nama. terakhir . Pastikan untuk memberikan nilai kepada pemboleh ubah ini dalam kod anda dan memaparkan hasilnya. Latihan 5 :
Ubah suai kod sumber dari projek yang anda buat dalam Latihan 4 untuk menggunakan typedef, seperti ditunjukkan dalam Menggunakan t ypedef untuk Menentukan Struktur. Bina dan lari. Boleh dikatakan bahawa menggunakan typedef tidak membuat kod anda lebih jelas daripada anda hanya menggunakan nama pembolehubah yang baik dan teks yang terformat dengan baik. Sebagai contoh, anda tidak boleh menggunakan typedef semata-mata kerana anda tidak mahu mengingati apa yang telah anda tentukan. Tetapi anda akan menghadapi kod lain yang menggunakan typedef. Jangan biarkan ia menarik perhatian anda. Keuntungan sebenar menggunakan typedef dengan struktur adalah, mungkin, ia menjimatkan anda daripada menaip struct perkataan terlalu banyak kali.