首頁 >後端開發 >C++ >可以在 C For 迴圈初始化中宣告不同類型的變數嗎?

可以在 C For 迴圈初始化中宣告不同類型的變數嗎?

Patricia Arquette
Patricia Arquette原創
2024-12-17 13:16:251013瀏覽

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

在For 迴圈初始化中宣告不同類型的變數

在C 中,無法直接在For 迴圈中宣告不同類型的變數for循環的初始化主體。這是因為循環初始化部分需要單一表達式,該表達式只能定義相同類型的變數。

考慮以下範例:

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

此程式碼正確定義了兩個整數變數 i和 j。但是,如果您嘗試在初始化中聲明整數和字符,則會導致編譯錯誤:

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

技術解決方法

儘管不是在實際場景中建議,有一種技術解決方法可以在for 循環初始化中聲明不同的類型。它涉及創建一個包含所需類型的結構,然後使用該結構作為初始化表達式:

struct MyStruct
{
    int a;
    char b;
};

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

在此範例中,我們建立一個具有兩個成員的MyStruct,a(整數)和b (一個字元)。循環初始化將 MyStruct 實例 s 設為 a 等於 0,b 等於「a」。只要 s.a 小於 5,循環就會繼續。

以上是可以在 C For 迴圈初始化中宣告不同類型的變數嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn