! X Dalam bahasa C secara tersirat menukarkan x ke nilai boolean, dan kemudian inverts: 0 hingga palsu (0), bukan 0 hingga benar (1) melakukan tidak logik pada nilai yang ditukar, 0 perubahan 1, 1 perubahan 0 ke int, 0 atau 1
Apa itu !x
dalam C? Ini bukan sebaliknya mudah!
Apabila ramai pemula melihat !x
, reaksi pertama mereka ialah "Oh, ambil kembali". Ya, ia melakukan operasi tidak logik pada x
, tetapi ini hanya fenomena cetek. Hanya dengan memahami makna yang mendalam, anda boleh benar -benar menguasai intipati bahasa C. Selepas membaca artikel ini, anda bukan sahaja akan memahami mekanisme operasi !x
, tetapi juga mempunyai pemahaman yang lebih mendalam tentang penukaran jenis dan peraturan bahasa C yang tersirat, dan juga boleh menulis lebih banyak kod yang elegan dan cekap.
Mari kita bincangkan kesimpulan terlebih dahulu : !x
akan menukar x
ke nilai boolean dan kemudian membalikkannya. Terdapat misteri tersembunyi dalam hal ini!
Asas: Peraturan penukaran jenis yang tidak diucapkan
C bukan sebagai "lembut" sebagai python. Ia mempunyai set peraturan yang ketat untuk penukaran jenis, yang sering tersirat, yang sering mendorong pemula gila. Ingat: Dalam bahasa C, 0 mewakili palsu, dan bukan 0 mewakili benar. Mana-mana nilai bukan sifar akan dianggap benar.
Di belakang tabir !x
Apabila pengkompil bertemu !x
, ia melalui langkah -langkah berikut:
- Penukaran jenis tersirat: Tidak kira apa jenis
x
(int, char, float, penunjuk ...), ia akan secara tersirat ditukar kepada boolean. Jikax
adalah 0, ia ditukar kepada palsu (0); jika tidak, ia ditukar kepada Benar (1). - Non-Operasi Logik: Melaksanakan Operasi Logik mengenai Hasil Langkah 1. 0 menjadi 1, 1 menjadi 0.
- Jenis Keputusan: Hasil akhir adalah jenis
int
jenis, dengan nilai 0 atau 1.
Contoh Kod: Pembukaan misteri
Mari gunakan beberapa contoh untuk memperdalam pemahaman kita:
<code class="c">#include <stdio.h> int main() { int x = 0; printf("!x (x=0): %d\n", !x); // 输出1 x = 1; printf("!x (x=1): %d\n", !x); // 输出0 x = -5; printf("!x (x=-5): %d\n", !x); // 输出0 char y = 'a'; // ASCII值为97 printf("!y (y='a'): %d\n", !y); // 输出0 float z = 0.0; printf("!z (z=0.0): %d\n", !z); // 输出1 float w = 3.14; printf("!w (w=3.14): %d\n", !w); // 输出0 return 0; }</stdio.h></code>
Penggunaan dan perangkap lanjutan
Anda mungkin tertanya -tanya, apa gunanya perkara ini? Malah, ia sangat praktikal dalam penghakiman bersyarat dan boleh menulis lebih banyak kod ringkas. Sebagai contoh, periksa sama ada penunjuk kosong:
<code class="c">if (!ptr) { // 等价于if (ptr == NULL) // 指针为空的处理}</code>
Tetapi berhati -hati! !x
Hanya peduli sama ada x
adalah 0, ia tidak akan membezakan antara nombor positif dan negatif atau nilai spesifik nombor titik terapung. Jika logik anda perlu membezakannya, !x
tidak sesuai. Ingat, ia hanya membuat pertimbangan mudah tentang kebenaran atau kepalsuan.
Pengoptimuman Prestasi?
Untuk !x
sendiri, pengkompil biasanya mengoptimumkan, jadi tidak perlu bimbang tentang isu -isu prestasi. Kuncinya ialah bagaimana anda menggunakannya untuk mengelakkan penukaran jenis yang tidak perlu dan kerumitan logik.
Meringkaskan
!x
nampaknya mudah, tetapi sebenarnya ia mengandungi mekanisme penukaran jenis dan peraturan bahasa C yang tersirat. Hanya dengan memahami prinsip pengendaliannya, anda boleh menulis kod yang lebih selamat dan lebih cekap. Ingat, 0 mewakili palsu, bukan 0 mewakili benar, ini adalah kunci untuk memahami !x
Jangan keliru dengan "pembalikan" dangkal, lihat intipati di belakangnya.
Atas ialah kandungan terperinci Apa maksudnya dalam c?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Komuniti pemaju C#.NET menyediakan sumber dan sokongan yang kaya, termasuk: 1. Dokumen rasmi Microsoft, 2. Sumber -sumber ini membantu pemaju meningkatkan kemahiran pengaturcaraan mereka dari pembelajaran asas ke aplikasi lanjutan.

Kelebihan C#.NET termasuk: 1) ciri bahasa, seperti pengaturcaraan asynchronous memudahkan pembangunan; 2) prestasi dan kebolehpercayaan, meningkatkan kecekapan melalui kompilasi JIT dan mekanisme pengumpulan sampah; 3) sokongan silang platform, .Netcore memperluaskan senario aplikasi; 4) Pelbagai aplikasi praktikal, dengan prestasi cemerlang dari web ke desktop dan pembangunan permainan.

C# tidak selalu terikat dengan .net. 1) C# boleh berjalan dalam persekitaran runtime mono dan sesuai untuk Linux dan MacOS. 2) Dalam enjin permainan Perpaduan, C# digunakan untuk skrip dan tidak bergantung pada rangka .NET. 3) C# juga boleh digunakan untuk pembangunan sistem tertanam, seperti .netmicroframework.

C# memainkan peranan utama dalam ekosistem .NET dan merupakan bahasa pilihan untuk pemaju. 1) C# menyediakan kaedah pengaturcaraan yang cekap dan mudah digunakan, menggabungkan kelebihan C, C dan Java. 2) Melaksanakan melalui .NET Runtime (CLR) untuk memastikan operasi silang platform yang cekap. 3) C# menyokong asas untuk penggunaan lanjutan, seperti LINQ dan pengaturcaraan asynchronous. 4) Pengoptimuman dan amalan terbaik termasuk menggunakan StringBuilder dan pengaturcaraan asynchronous untuk meningkatkan prestasi dan penyelenggaraan.

C# adalah bahasa pengaturcaraan yang dikeluarkan oleh Microsoft pada tahun 2000, yang bertujuan untuk menggabungkan kuasa C dan kesederhanaan Java. 1.C# adalah bahasa pengaturcaraan yang berorientasikan objek, yang menyokong enkapsulasi, warisan dan polimorfisme. 2. Proses penyusunan C# menukarkan kod tersebut ke dalam bahasa pertengahan (IL), dan kemudian menyusunnya ke dalam pelaksanaan kod mesin dalam persekitaran runtime .NET (CLR). 3. Penggunaan asas C# termasuk pengisytiharan berubah -ubah, aliran kawalan dan definisi fungsi, sementara penggunaan lanjutan meliputi pengaturcaraan asynchronous, LINQ dan perwakilan, dan lain -lain. 5. Cadangan Pengoptimuman Prestasi termasuk penggunaan LINQ, pengaturcaraan asynchronous, dan meningkatkan kebolehbacaan kod.

C# adalah bahasa pengaturcaraan, manakala .NET adalah rangka kerja perisian. 1.C# dibangunkan oleh Microsoft dan sesuai untuk pembangunan pelbagai platform. 2..NET menyediakan perpustakaan kelas dan persekitaran runtime, dan menyokong pelbagai bahasa. Kedua -dua bekerja bersama untuk membina aplikasi moden.

C# .NET adalah platform pembangunan yang kuat yang menggabungkan kelebihan bahasa C# dan .NET. 1) Ia digunakan secara meluas dalam aplikasi perusahaan, pembangunan web, pembangunan permainan dan pembangunan aplikasi mudah alih. 2) Kod C# disusun menjadi bahasa pertengahan dan dilaksanakan oleh persekitaran runtime .NET, menyokong pengumpulan sampah, jenis keselamatan dan pertanyaan Linq. 3) Contoh penggunaan termasuk output konsol asas dan pertanyaan Linq maju. 4) Kesalahan biasa seperti rujukan kosong dan kesilapan penukaran jenis boleh diselesaikan melalui debuggers dan pembalakan. 5) Cadangan Pengoptimuman Prestasi termasuk pengaturcaraan dan pengoptimuman pertanyaan Linq. 6) Walaupun persaingan, C#.NET mengekalkan kedudukan pentingnya melalui inovasi berterusan.

Trend masa depan C#.NET terutamanya tertumpu pada tiga aspek: pengkomputeran awan, microservices, AI dan integrasi pembelajaran mesin, dan pembangunan silang platform. 1) Pengkomputeran awan dan microservices: C#.NET mengoptimumkan prestasi persekitaran awan melalui platform Azure dan menyokong pembinaan seni bina microservice yang cekap. 2) Integrasi AI dan Pembelajaran Mesin: Dengan bantuan Perpustakaan ML.NET, pemaju C# boleh membenamkan model pembelajaran mesin dalam aplikasi mereka untuk mempromosikan pembangunan aplikasi pintar. 3) Pembangunan silang platform: Melalui .Netcore dan .NET5, C# Aplikasi boleh dijalankan pada Windows, Linux dan MacOS, memperluaskan skop penempatan.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

SublimeText3 Linux versi baharu
SublimeText3 Linux versi terkini

Dreamweaver Mac版
Alat pembangunan web visual

Versi Mac WebStorm
Alat pembangunan JavaScript yang berguna

PhpStorm versi Mac
Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

DVWA
Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini
