Perkenalan

Perkenalan

Seperti yang dijanjikan, dimulai dengan bagian dari artikel pengembangan C ini, kami akan memulai dengan belajar, tanpa pengantar lebih lanjut. Saya tidak dapat menemukan cara yang lebih baik untuk memulai selain ini, karena jenis, operator, dan variabel adalah bagian penting dari C dan Anda akan menggunakannya setiap saat saat menulis program Anda sendiri. Misalnya, Anda dapat menulis program C sederhana tanpa mendefinisikan fungsi Anda sendiri, tetapi lebih sulit untuk melakukannya tanpa beberapa variabel, kecuali jika Anda ingin tetap pada “halo, dunia!". Variabel tidak lebih dari lokasi dalam memori memegang nilai yang dapat diubah (karenanya namanya). Tetapi sebelum Anda mendeklarasikan variabel, Anda harus tahu nilai seperti apa yang Anda inginkan, dan di sini Anda akan menggunakan tipe. Dan untuk beroperasi Pada variabel -variabel itu, Anda akan membutuhkan ... operator, tentu saja. Saya bermaksud membuat kursus ini ringkas mungkin, jadi saya merekomendasikan perhatian dan seperti biasa, berlatih.

Tipe

Seperti yang dikatakan, sebelum Anda pergi dan mendeklarasikan variabel, Anda harus tahu nilai seperti apa yang akan dimilikinya. Apakah itu akan menjadi angka? Jika demikian, seberapa besar mungkin bisa? Apakah itu bilangan bulat? Atau mungkin Anda ingin mendeklarasikan string? Ini adalah hal -hal yang harus Anda ketahui dengan pasti sebelum memilih jenisnya, dan kami merekomendasikan perawatan ekstra ketika datang ke kemungkinan buffer overflows. C adalah jenis bahasa yang memberi Anda tali yang cukup untuk menggantung diri dan tidak melakukan banyak pegangan tangan, dan kesalahan ini sangat sulit dikenali dalam program besar.

Sebelum kita mulai, Anda harus menyadari hubungan antara perangkat keras dan tipe. Di sinilah kami mengharapkan Anda untuk membaca sendiri terutama jika Anda menggunakan perangkat keras selain x86, baik itu 32 atau 64-bit, kompiler selain GCC atau sistem operasi selain Linux. Biasanya, perbedaan ini muncul saat berhadapan dengan nilai titik mengambang. Kami tidak akan mendapatkan lebih dalam tentang ini, karena ini bukan waktu atau tempat, tetapi Anda diharapkan untuk membaca beberapa dokumentasi tentang kompiler Anda, terutama bagian yang bergantung pada perangkat keras. Sekarang mari kita mulai.

Char C; karakter yang tidak ditandatangani; s pendek; US Short Us yang tidak ditandatangani; int i; Unigned u; Long L; UL Panjang Tanpa tanda; float f; Double D; Long Double Ld; const int ci; 

Kami memutuskan untuk mengambil jalan "contoh terlebih dahulu, penjelasan nanti" di sini, karena kami merasa bahwa beberapa dari Anda akan menemukan contoh di atas akrab. Ada bahasa terkait lainnya yang mendeklarasikan variabel mereka dengan cara yang hampir sama, dan bagaimanapun juga, kata kunci intuitif. Sebelum kita melanjutkan, harus dikatakan bahwa char, int, float dan double adalah tipe data primer di c. Tidak ditandatangani dan ditandatangani pengubah, Artinya jika Anda perlu bekerja dengan nilai yang lebih kecil dari nol, Anda harus memberi tahu kompiler bahwa variabel Anda ditandatangani, karena di dalamnya bisa lebih besar atau lebih kecil dari nol. panjang dan pendek (ini berlaku untuk bilangan bulat biasanya) memungkinkan Anda untuk menyimpan nilai yang lebih besar, atau lebih kecil, dan jumlah byte bergantung pada mesin, tetapi pendek harus selalu lebih kecil dari int, yang pada gilirannya harus selalu lebih kecil dari bersama. Seperti yang Anda lihat, dalam praktiknya seseorang tidak menggunakan int panjang atau pendek, hanya panjang atau pendek. Kata kunci const memberi tahu kompiler bahwa sekali variabel memiliki nilai, itu tidak dapat diubah.

Mari kita mulai dengan tipe terkecil, arang. Dijamin cukup besar untuk menampung satu byte, dan selalu ukuran tetap. Jika orang akan memberi tahu Anda bahwa byte selalu delapan bit, lebih baik pikirkan lagi. Setiap arsitektur perangkat keras populer memang menggunakan byte delapan-bit, tetapi ada pengecualian, jadi jangan membuat asumsi jika Anda ingin menulis kode portabel. Pada x86, karena byte adalah delapan bit, sebuah char (tidak ditandatangani) dapat menahan nilai dari 0 hingga 255, yaitu 28. Jika char ditandatangani, maka itu dapat menahan nilai dari -128 hingga 127. Tetapi namanya mungkin menyesatkan Anda: Karakter memang dapat disimpan dalam char, tetapi jika Anda menggunakan Unicode, kami berbicara multibyte di sana dan Anda harus menggunakan WCHAR_T, tetapi lebih dari itu nanti.

Sekarang Anda tahu jenis pengubah tipe apa, kami bisa mendapatkan bilangan bulat. Pada bilangan bulat, Anda dapat menggabungkan tanda dan pengubah panjang, seperti yang terlihat pada contoh di atas, agar sesuai dengan kebutuhan Anda. Ingatlah untuk memiliki editor yang berguna dan periksa dengan batasan.header h (pada sistem saya itu dapat ditemukan di /usr /include) untuk mengetahui batasan sebenarnya pada sistem Anda. Sebagai aturan singkat, int akan menahan nilai dari 0 hingga 65535 atau, jika ditandatangani, dari -32768 hingga 32767. Dan pengubah panjang akan menggandakan jumlah byte penyimpanan, jadi jika int membutuhkan 2 byte, yang lama akan membutuhkan 4. Kami akan menyerahkan kepada pengguna untuk mencari tahu bilangan bulat lainnya dan nilai -nilai minimal dan maksimalnya. Namun, kami akan menunjukkan cara mengetahui ukuran dan batasan pada sistem Anda.

Mengapung adalah nilai titik mengambang, yang menyiratkan bahwa Anda harus mendefinisikan variabel seperti ini:

nilai pelampung; nilai = 234.00;

Bahkan jika tidak ada apa -apa setelah titik (bagian desimal), jadi sebenarnya bilangan bulat. Sebenarnya ada situasi di mana Anda harus mendeklarasikan nilai integer sebagai pelampung, karena nilainya mungkin berubah dan tipe yang dinyatakan harus dapat menyimpan nilai titik mengambang. Semua nilai pada mesin Anda dapat ditemukan di float.H.

Variabel

Sekarang Anda tahu jenis apa yang Anda miliki di C, mari kita lihat bagaimana Anda dapat menggunakannya secara efektif. Beberapa mungkin bertanya -tanya, “Jika kita memiliki ganda panjang yang dapat menyimpan nilai -nilai yang begitu besar, mengapa tidak menggunakannya di mana -mana?" . Pemrograman adalah tentang efisiensi, dan pemrograman C terutama, dan itulah sebabnya menyimpan nilai seperti 23 dalam dua kali lipat akan menggunakan 4 kali memori yang diperlukan, tanpa apa -apa. Saat Anda mendeklarasikan variabel, sepotong memori disediakan untuk itu tergantung pada jenisnya. Jadi mengapa menyia -nyiakan memori tanpa alasan yang baik? Menciptakan kebiasaan menggunakan jenis yang tepat yang sesuai dengan nilai (mungkin) Anda, tidak kurang, tidak lebih. Anda telah melihat di atas bagaimana caranya menyatakan variabel. Sekarang mari kita lihat bagaimana mendefinisikannya, seperti di mari kita beri mereka nilai.

c = 'a'; i = 234; f = 12643.984; LD = 16546581654161598309.87;

Kami mengambil nama -nama dari contoh sebelumnya, yang, seperti yang mungkin Anda perhatikan, ditulis untuk mencerminkan tipe yang ditugaskan, jadi 'ld' adalah ganda panjang dan seterusnya. Dalam contoh ini kami mengambil dua langkah: yang pertama untuk mendeklarasikan variabel, yang kedua untuk mendefinisikannya dengan menetapkan nilai suatu. Beberapa akan mengatakan itu gaya yang bagus untuk menulis kode seperti itu, tetapi Anda dapat melakukan kedua operasi dalam satu langkah dan tidak ada yang akan menyakiti Anda:

char c = 'a'; int i = 234; float f = 12643.984; Long Double Ld = 16546581654161598309.87;

Kami merekomendasikan dan bahkan mendesak Anda untuk menggunakan nama dengan makna dalam kode Anda, dan berkomentar sebanyak mungkin: kemungkinan akan ada orang lain yang membaca apa yang Anda tulis dan hidup mereka akan jauh lebih mudah jika Anda melakukannya. Juga, gunakan topi hanya jika diperlukan, terutama karena C menggunakan semua cap di berbagai arahan preprosesor. Juga karakter pertama dalam nama variabel harus menjadi surat.

Seperti yang dijanjikan, karena semua berbicara dan tidak bermain tidak bagus, kami akan menunjukkan kepada Anda sedikit program yang dapat Anda gunakan untuk melihat nilai minimal dan maksimal dari berbagai jenis, tetapi kami hanya akan menggambarkan beberapa. Sisanya akan menjadi tugas Anda untuk dilakukan, mengikuti contoh kami, dengan editor memiliki batasan.h dan float.h buka. Akan ada beberapa elemen baru di sini, tetapi tidak pernah khawatir, mereka akan dijelaskan.

#include #include #include int main () unsigned long long Ullmax = Ullong_max; Long lmax = long_max; Long double ldmax = ldbl_max; printf ("Nilai maksimal dari panjang yang tidak ditandatangani adalah %lu.\ n ", Ullmax); printf (" Nilai maksimum dari long adalah %ld.\ n ", lmax); printf (" Nilai maks dari ganda panjang adalah %lf.\ n ", ldmax); kembali 0;  

Jadi, kami mendeklarasikan tiga variabel dengan nama yang bermakna dan menetapkan nilai -nilai tiga makro yang didefinisikan dalam batas.h dan float.H. Maka tentu saja, kita harus mencetaknya. Kami melakukannya dengan menggunakan printf (), dan di sini kami akan berhenti untuk sedikit bicara. Kami merekomendasikan 'Man 3 Printf' untuk detail lebih lanjut tentang format string, yaitu, bagian di dalam kutipan ganda printf yang dimulai dengan '%'. Mereka memberi tahu printf nilainya seperti apa yang seharusnya diharapkan, jadi itu harus berperilaku berbeda dengan jenis yang berbeda. Dalam contoh pertama '%lu' berarti panjang (l), yang tidak ditandatangani ('u'). Untuk bilangan bulat, string format adalah 'D', untuk desimal, dan karena bilangan bulat yang panjang, itu akan menjadi '%ld'. Dalam printf ketiga, f adalah singkatan dari float, ganda pada dasarnya adalah pelampung panjang, dan double panjang adalah pelampung panjang, karenanya formatnya.

Sekarang, simpan kode di atas, kompilasi dan jalankan. Program ini, setelah Anda menambahkan lebih banyak ke dalamnya, akan membantu Anda ketika Anda ingin mendeklarasikan variabel, tetapi Anda belum yakin jenis apa yang harus cocok.

Operator

Operator aritmatika

Subbab ini, tentu saja, berkaitan dengan operator dasar biasa yang Anda pelajari di sekolah dasar. Tapi ada sedikit lagi. Contoh musuh,. operator +, -, *, / dan % adalah operator biner. % adalah operator modulo, yang berarti bahwa jika kita memiliki 50 % 2, hasilnya adalah 0 karena hasil dari Divisi 50/2 memiliki bilangan bulat sebagai hasilnya. Anda dapat menggunakan empat operator pertama dengan nilai numerik apa pun, tetapi modulo hanya berurusan dengan bilangan bulat. Prioritas sama seperti di buku aritmetik.

Operator relasional

Operator ini>,> =, <=, <, and they all have the same precedence. For the next part we recommend extra care, because it's cause for much confusion in the beginner's league, and non-beginners alike. Like said above, one uses '=' to give some value to a variable. But if you want to check if a variable has a certain value, you use '==', and if it hasn't, use '!=', where '!' is the logical negation operator, as you'll see. Let's take the following (useless) example:

#include int main () int var = 4; jika (var == 4) printf ("var adalah 4!\N"); kalau tidak printf ("Ada sesuatu yang salah.\N"); kembali 0;  

Pengecoran

Singkatnya, casting memaksa kompiler untuk melupakan jenis variabel dan memperlakukan memiliki jenis lain yang Anda berikan. Ini tidak dilakukan secara acak, hanya antara jenis yang kompatibel, dan perawatan direkomendasikan saat menggunakan casting. Misalnya, katakanlah kami ingin mengetahui nilai ASCII dari 'A'. Kode bisa terlihat seperti ini:

#include int main () char c = 'a'; printf ("nilai ASCII dari 'A' adalah %d.\ n ", (int) c); kembali 0;  

Anda akan mendapatkan nilai 97, yang memang nilai ASCII dari 'a'. Jadi, dengan menggunakan tanda kurung sebelum dan sesudah jenis yang ingin Anda "maksus" dan semua ini sebelum nama variabel, Anda mendapatkan casting. Contoh di atas berfungsi karena char tidak lebih dari int kecil, jadi tipe yang kompatibel. Coba casting variabel di atas ke jenis lain dan perhatikan hasilnya.

Operator kenaikan dan penurunan

Anda pasti pernah mendengar tentang C ++. Nah, namanya menunjukkan bahwa entah bagaimana lebih dari C, karena '++' adalah operator kenaikan (menambahkan 1 ke nilai variabel), seperti '-' adalah operator penurunan. Ini adalah operator unary dan dapat diawali serta pasca -fixed. maksudnya itu apa? Itu berarti Anda dapat menulis baik ++ c atau c ++, dan hasilnya mungkin atau mungkin tidak serupa. Perbedaannya adalah bahwa dengan '++' diawali, nilai variabel pertama -tama bertambah satu, kemudian digunakan, dan sebaliknya sebaliknya. Kami akan menunjukkan kepada Anda contoh singkat kapan itu penting dan saat tidak.

#include int main () int x; int n = 10; int z; n ++; / * n akan menjadi 11 sekarang */ ++N; / *ditto, awalan atau postfix tidak penting */ x = n ++; / * x akan menjadi 10 */ z = ++ n; / * z akan menjadi 11 */ kembali 0;  

Tetapi bagaimana jika Anda ingin bertambah/penurunan dengan lebih dari satu? Sederhana, karena C ++ setara dengan C+= 1. Ganti 1 dengan nilai apa pun yang Anda butuhkan dan Anda siap. Operator senyawa ini juga dapat digunakan dengan operator aritmatika biner lainnya (e.G. *= atau /=) dan operator bitwise juga, seperti 'A & = B'.

Operator bitwise

Di C Anda dapat melakukan operasi bitwise dengan mudah, tetapi ingat! Mereka bekerja dan hanya digunakan dengan jenis integer, ditandatangani atau tidak ditandatangani. Operator ini adalah:

& - Bitwise dan | - bitwise atau ^ - xor <> - shift kanan - - komplemen seseorang

Operator logis

Kami sudah berurusan dengan '!', yang meniadakan ekspresi logis apa pun, tetapi ada dua operator logis yang sangat penting (berhati -hatilah untuk tidak mencampurnya dengan yang bitwise): dan dan atau, masing -masing. Jadi, jika saya ingin menulis di C sesuatu seperti “Jika variabel 1 memiliki nilai 2 dan variabel 2 memiliki nilai 8”, saya akan menulis seperti ini:

jika (var1 == 2 && var2 == 8)… 

Di sini kedua kondisi harus mengevaluasi sebagai benar untuk instruksi yang mengikuti jika untuk mengeksekusi. Jika salah satu akan melakukannya, atau keduanya, kami mengganti '&&' dengan '||' (konjungsi versus disjungsi).

Operator lain

Orang yang memiliki pengalaman C mungkin telah memperhatikan kurangnya beberapa operator. Tentu saja, dan kami menyadarinya, tetapi apa yang masuk akal untuk membuat daftar operator tidak langsung sementara pembaca tidak tahu apa itu pointer? Jadi, operator lain, khusus untuk bagian C lainnya, akan ditangani pada waktunya.

Kesimpulan

Dengan contoh yang ditawarkan di bagian ini, kami yakin Anda memiliki cukup untuk bermain sedikit dan mencoba berbagai pilihan. Anda tahu, kompiler tidak akan menggigit jika Anda memberinya data yang salah, komputer juga tidak akan meledak. Dan, seperti yang kami katakan sebelumnya, Anda tidak dapat belajar pemrograman dengan membaca buku saja. Jadi dapatkan keyboard Anda dan buat sesuatu yang menarik.

Inilah yang dapat Anda harapkan selanjutnya:

  • SAYA. C Perkembangan di Linux - Pendahuluan
  • Ii. Perbandingan antara C dan bahasa pemrograman lainnya
  • AKU AKU AKU. Jenis, Operator, Variabel
  • Iv. Alur kontrol
  • V. Fungsi
  • Vi. Pointer dan Array
  • Vii. Struktur
  • Viii. I/O Dasar
  • Ix. Gaya pengkodean dan rekomendasi
  • X. Membangun program
  • Xi. Kemasan untuk Debian dan Fedora
  • Xii. Mendapatkan paket di repositori resmi Debian

Tutorial Linux Terkait:

  • Ekspresi reguler Python dengan contoh
  • Bash Script: Hello World Contoh
  • Cara Menginstal Ubuntu di USB Stick
  • Hal -hal yang harus diinstal pada ubuntu 20.04
  • Pengantar Otomatisasi Linux, Alat dan Teknik
  • Buat USB Bootable Manjaro Linux
  • Hal -hal yang harus dilakukan setelah menginstal ubuntu 20.04 FOSSA FOSSA Linux
  • Ubuntu 20.04 trik dan hal -hal yang mungkin tidak Anda ketahui
  • Buat Ubuntu 20 Bootable.04 USB Stick pada MS Windows 10
  • Cara menginstal driver nvidia di fedora 32