Rumah >pembangunan bahagian belakang >C++ >Bolehkah Anda Mengisytiharkan Pembolehubah Pelbagai Jenis dalam C Untuk Permulaan Gelung?

Bolehkah Anda Mengisytiharkan Pembolehubah Pelbagai Jenis dalam C Untuk Permulaan Gelung?

Patricia Arquette
Patricia Arquetteasal
2024-12-17 13:16:251007semak imbas

Can You Declare Variables of Different Types in a C   For Loop Initialization?

Mengisytiharkan Pembolehubah Pelbagai Jenis dalam Permulaan Untuk Gelung

Dalam C , tidak mungkin untuk mengisytiharkan pembolehubah jenis berbeza dalam badan permulaan bagi gelung untuk. Ini kerana bahagian permulaan gelung menjangkakan satu ungkapan, yang hanya boleh mentakrifkan pembolehubah daripada jenis yang sama.

Pertimbangkan contoh berikut:

for (int i = 0, j = 0; ...)
{
    // ...
}

Kod ini mentakrifkan dua pembolehubah integer dengan betul i dan j. Walau bagaimanapun, jika anda cuba mengisytiharkan integer dan aksara dalam permulaan, ia akan mengakibatkan ralat kompilasi:

for (int i = 0, char c = 'a'; ...)
{
    // ...
}

Penyelesaian Teknikal

Walaupun tidak disyorkan dalam senario praktikal, terdapat penyelesaian teknikal untuk mengisytiharkan jenis yang berbeza dalam permulaan gelung untuk. Ia melibatkan mencipta satu struct yang mengandungi jenis yang diingini dan kemudian menggunakan struct ini sebagai ungkapan permulaan:

struct MyStruct
{
    int a;
    char b;
};

for (MyStruct s = { 0, 'a' }; s.a < 5; ++s.a)
{
    std::cout << s.a << " " << s.b << std::endl;
}

Dalam contoh ini, kami mencipta MyStruct dengan dua ahli, a (integer) dan b ( watak). Inisialisasi gelung menetapkan contoh MyStruct s untuk mempunyai sama dengan 0 dan b sama dengan 'a'. Gelung kemudian diteruskan selagi s.a kurang daripada 5.

Atas ialah kandungan terperinci Bolehkah Anda Mengisytiharkan Pembolehubah Pelbagai Jenis dalam C Untuk Permulaan Gelung?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn