關于switch的用法這里不再做什么總結了,其實這個是一個便捷的快速跳轉條件切換器。而關于這個功能最常用的技術討論點在于case后面的break以及default。這里不討論這些,直接看下面的代碼:
#include"stdio.h" int main(void){ int num = 0; switch(num) { printf("functionrun!\n"); } return 0;}
上面的代碼中用到了一個switch,但是代碼塊中沒有任何case以及default。代碼語法有問題嗎?
編譯一下如下:
E:\WorkSpace2_技術實踐1_編程語言1_C語言2_C和指針\switch>gcc switch.c
E:\WorkSpace2_技術實踐1_編程語言1_C語言2_C和指針\switch>
由上面的結果可以看到,編譯沒有任何問題。那么運行會是什么狀態呢?會把這個唯一的printf執行輸出相應的語句?
運行如下:
E:\WorkSpace2_技術實踐1_編程語言1_C語言2_C和指針\switch>a
E:\WorkSpace2_技術實踐1_編程語言1_C語言2_C和指針\switch>
如此看,就有點詭異了。這個printf語句是沒有執行到的!也就是說,switch語句中的代碼執行必須得有case標簽指示代碼的入口。這種行為很讓人聯想到一種情況的程序執行結果,代碼如下:
#include"stdio.h" int main(void){ int num = 0; switch(num) { int i = 123; printf("functionrun!\n"); default: printf("value of iis:%d\n",i); break; } return 0;}
代碼是在之前的代碼中修改的,代碼的第二個printf會執行,可是執行的時候i的數值是多少呢?從之前的測試可以看出,局部變量后面的代碼是沒有執行過的,那么我這個i在每次函數執行到這里的時候會每次動態性初始化嗎?
代碼編譯運行結果:
E:\WorkSpace2_技術實踐1_編程語言1_C語言2_C和指針\switch>gcc switch.c
E:\WorkSpace2_技術實踐1_編程語言1_C語言2_C和指針\switch>a value of i is:2
E:\WorkSpace2_技術實踐1_編程語言1_C語言2_C和指針\switch>
從上面的結果可以得出兩個結論:
1,代碼塊中的聲明定義是起作用的;
2,i的數值不是123證明這部分的局部變量并沒有進行每次的動態初始化。
關于C語言中switch如何使用就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...
2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...
:喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...
【資料圖】關于金絲楠木手串怎么盤的知識大家了解嗎?以下就是小編整理的關于金絲楠木手串怎么盤的介紹,希望可以給到大家一些參考,一起來了解下吧!在盤玩金絲楠木手串的時候,一般手心經常出汗的人建議戴棉質手套盤玩,避免汗液內的鹽和脂肪酸影響金絲楠木手串的光澤度。再放在纖維布內一顆一顆揉搓,這樣盤玩時間久了可以讓金絲楠木手串表面變得細膩有光澤。金絲楠木手串的盤玩方法剛購買回來的金絲楠木手串最好不要直接上手盤...
(資料圖片僅供參考)最近小編看到大家都在討論管寧華歆是個什么樣的人相關的事情,對此呢小編也是非常的感應興趣,那么這件事究竟是怎么發生的呢?具體又是怎么回事呢?下面就是小編搜索到的關于管寧華歆是個什么樣的人事件的相關信息,我們一起來看一下吧!1、管寧的特點——淡泊名利,性淡氣清,愛憎分明。管寧,字幼安。北??ぶ焯摽h人。與華歆、邴原并稱為"一龍"。漢末天下大亂時,與邴原及王烈等人至遼東避亂。在當地只談...
2021美國國債持有國排名一覽表據2022年2月16日美國新公開的數據統計顯示:1、日本2021年12月減持美債230億美元至1.304萬億美元,仍為美國第一大 :債權國;2、中國在2021年12月 減持美債122億美元至1.0687萬億美元,仍為美國第二大債權國;3、英國2021年12月增持254億美元至6474億美元,持倉規模位居美債第三大持有國;4、 愛爾蘭2021年12月增持45億美元至3...