国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

C語言中一個括號引發的……

發布時間:2020-5-19 14:07    發布者:嵌入式人生17
C語言中一個括號引發的……
作者:薛定諤的coding貓
今天給大家帶來一個比較典型的問題,一個小括號引發的bug,問題雖小但值得注意。
首先來看如下代碼
·
·
if (x == 0)  if (y == 0)    error();else{  z = x + y;}
在上面這段代碼中,作者的本意是處理兩種情況x等于0以及x不等于0,對于x等于0的情況,如果y也等于0,就調用error()函數。如果x不等于0,首先求出x和y的和,然后賦值給z。
然而,上面這段代碼實際上所做的卻和編程者的意圖相去甚遠。
原因在于C語言中有這樣的規則:else始終優先匹配同一對括號中最近未匹配的if。如果我們按照程序實際執行的邏輯來調整代碼的縮進,那么代碼實現的功能大致如下:
·
·
if (x == 0) {  if (y == 0)     error();  else {    z = x + y;  }}
觀察上面的代碼可以發現,如果x不等于0,程序不會進行任何處理。如果程序等于0,會進一步根據y的值是否為0進行處理。
如果我們想得到原來的例子中由代碼縮進體現的編程者的本意,我們應該這樣寫這個函數。
·
·
if (x == 0) {  if (y == 0)     error();} else {  z = x + y;}
現在else與第一個if正確匹配,即使它距離第二個if更近也是如此,因為此時第二個if已經被括號封裝起來了。
一個小小的括號就會完全改變程序的執行流程,從這個例子中我們可以看出,不要隨意省略括號是良好的編程習慣,請大家以后注意,感謝耐心閱讀!

本文地址:http://www.qingdxww.cn/thread-589207-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 想要避免發生災難,就用MPLAB SiC電源仿真器!
  • 深度體驗Microchip自動輔助駕駛應用方案——2025巡展開啟報名!
  • 你仿真過嗎?使用免費的MPLAB Mindi模擬仿真器降低設計風險
  • 更佳設計的解決方案——Microchip模擬開發生態系統
  • 貿澤電子(Mouser)專區
關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 一级做a爱片 | 青青青国产依人在在线观看高 | 国产福利在线观看第二区 | 色视频在线免费看 | 色综合色综合色综合网址 | 嫩草影院在线观看网站成人 | 国产99久9在线 | 一卡二卡四卡视频不卡 | 狠狠色丁香婷婷综合橹不卡 | 亚洲欧美日韩在线观看播放 | 在线观看欧美一区 | 狠狠色狠狠色综合系列 | 欧美亚洲一区二区三区导航 | 日韩四区| 四虎最新网址在线观看 | 一级骚片超级骚在线观看 | 免费观看黄视频 | 五月天淫 | 555夜色555亚洲夜色 | 国产在线精品福利一区二区三区 | 亚州不卡 | 色婷婷亚洲综合 | 免费在线观看污视频网站 | 香蕉伊思人视频 | 久久精品视频一区 | 精品国产福利在线观看一区 | 日韩精品一区二区三区免费视频 | 亚洲888| 欧美视频国产 | 国产一级免费 | 韩国精品欧美一区二区三区 | 亚洲a免费| 欧美日韩在线视频观看 | 高清中文字幕免费观在线 | 最近韩国高清免费观看视频大全 | 国产69精品久久久久999 | 91亚洲精品丁香在线观看 | 97在线视频观看 | 欧美日韩在线永久免费播放 | 99久久免费国内精品 | 亚洲一区二区三区深夜天堂 |