在C語(yǔ)言中什么是語(yǔ)義錯(cuò)誤?
一般的程序錯(cuò)誤,粗略一點(diǎn)分的話,可以大致分為語(yǔ)法錯(cuò)誤和語(yǔ)義錯(cuò)誤。 語(yǔ)法錯(cuò)誤可以看作是編碼出現(xiàn)了違反C語(yǔ)言規(guī)則的錯(cuò)誤,一般編譯或者鏈接時(shí),都會(huì)報(bào)錯(cuò)的。 而語(yǔ)義錯(cuò)誤,也可以叫做邏輯錯(cuò)誤,也就是說(shuō)你的代碼完全符合C語(yǔ)言的規(guī)范,不會(huì)出現(xiàn)編譯/鏈接的錯(cuò)誤,但是,在邏輯上有錯(cuò)誤。舉個(gè)簡(jiǎn)單的例子,加入編一個(gè)代碼來(lái)統(tǒng)計(jì)int數(shù)組a的成員總和,成員總數(shù)為N:for(int i=0;i<N;i++;) //這里在i++后面多了一個(gè)分號(hào),這是語(yǔ)法錯(cuò)誤sum=sum+a[i]; for(int i=0;i<=N;i++) //這里多了一個(gè)i=N的取值,這是語(yǔ)義錯(cuò)誤sum=sum+a[i]; 什么叫語(yǔ)義錯(cuò)誤...