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

C語言中一個括號引發(fā)的……

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

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

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

廠商推薦

  • Microchip視頻專區(qū)
  • PIC32CM LS00 Curiosity Pro評估工具包
  • 實時控制解決方案的正確選擇——數(shù)字信號控制器(DSC)或通用MCU
  • PIC32CM LS60 Curiosity Pro評估工具包
  • dsPIC® DSC:攻克各種觸摸傳感挑戰(zhàn)的電容式觸摸解決方案
  • 貿(mào)澤電子(Mouser)專區(qū)
關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美成人综合在线| 一级毛片看真人在线视频| 色综合天天综合| 欧美大陆日韩一区二区三区| 日韩国产片| 日韩男女视频| 日韩亚洲国产综合久久久| 午夜在线免费观看视频| 欧美日产欧美日产精品| 亚洲成a人片在线播放| 日韩a在线| 亚洲三级视频在线观看| 小黄色片| 日韩中文字幕精品久久| 一道本高清香蕉网| 青青青国产免费全部免费观看| 青草青青视频| 青草视频在线观看国产| 热久久免费| 三级无删减高清在线影院| 亚洲欧美久久精品一区| 色综合天天综合| 午夜国产视频| 青青久在线| 亚洲国产婷婷综合在线精品| 亚洲欧美视频在线观看| 午夜影院观看| 香港日本三级在线播放| 人人插人人爱| 亚洲高清不卡视频| 香蕉青草久久成人网| 特级a毛片| 视频一区二区国产| 亚洲综合图| 亚洲午夜精品久久久久久成年 | 日韩污视频在线观看| 亚洲精品老司机福利在线播放| 欧美亚洲另类一区中文字幕| 午夜拍拍福利视频蜜桃视频| 手机看片99| 日本九色|