C語言中相對比較冷門的知識關鍵字goto!
goto關鍵字基礎知識
關鍵字goto表示無條件跳轉的意思,類似匯編中的jump指令,在C語言中的使用格式是:goto label,表示跳轉到label的位置,并且我們的label一般都寫在陳述句的開頭,寫成label:的形式,如下面程式案例:
使用注意點:
goto label;后面有分號,
goto只能在函式內部無條件跳轉,不能從一個函式跳轉到另外一個函式,
label:的標識在使用goto陳述句的前后均可,不遵循先定義后使用,
label的作用域在函式內部,不同函式之間可以定義相同的label,
goto關鍵字的爭議
對于goto的使用C語言界算是爭議不斷,并且大部分大學C語言老師在講到到goto這關鍵字的時候一般都會叫大家慎用goto關鍵字,既然goto陳述句C語言標準中定義了,有句話說得好,"存在即合理",大家不濫用即可,goto關鍵字非常的靈活,其實goto本身的功能是非常簡單的,就是一個跳轉到所定義的標簽label位置,靈活的地,例如下代碼:
尤其是嵌套層數更多的情況下,使用goto做為跳轉更為簡單,不信你看:
所以goto陳述句還是一個非常有潛力的關鍵字,對于設計巧妙高效的演算法會非常有用!所以個人覺得只要對goto陳述句的使用加以管束為我們開發服務,這未嘗不是一件好事,
Linux中的goto
讀過Linux相關代碼的小伙伴會發現goto陳述句的使用無處不在,這里我復制部分代碼來欣賞一下,更多的妙用大家可以自行閱讀Linux內核原始碼,
goto不能釋放記憶體,但是利用goto陳述句可以使程式嚴謹,你仔細看看上面的例子,用了goto,不論程式走什么分支,分配了的記憶體都得到了釋放,如果直接return,那么前面分配的空間就在沒釋放就退出程式了,
尾言
存在即是合理,慎用不是禁用!
另外如果你想更好的提升你的編程能力,學好C語言C++編程!彎道超車,快人一步!
C語言C++編程學習交流圈子,QQ群【757874045點擊進入】微信公眾號:C語言編程學習基地
分享(原始碼、專案實戰視頻、專案筆記,基礎入門教程)
歡迎轉行和學習編程的伙伴,利用更多的資料學習成長比自己琢磨更快哦!
C語言編程學習軟體

C語言學習視頻

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/279.html
標籤:C
