在C語言中什麼是語義錯誤c語言語法錯誤和語義錯誤有什麼區別,麻煩舉個例子

2021-03-06 07:29:03 字數 1088 閱讀 4785

1樓:希聲和寡

一般的程式錯誤,粗略一點分的話,可以大致分為語法錯誤和語義錯誤。

語法錯誤可以看作是編碼出現了違反c語言規則的錯誤,一般編譯或者連結時,

都會報錯的。

而語義錯誤,也可以叫做邏輯錯誤,

也就是說你的**完全符合c語言的規範,不會出現編譯/連結的錯誤,但是,在邏輯上有錯誤。

舉個簡單的例子,

加入編一個**來統計int陣列a的成員總和,成員總數為n:

for(int i=0;i

sum=sum+a[i];

for(int i=0;i<=n;i++) //這裡多了一個i=n的取值,這是語義錯誤

sum=sum+a[i];

2樓:

語義錯誤,就是語法上沒錯誤,編譯可以通過,也可以執行,也可以得到結果,但結果不符合實際,是錯的。這就是語義描述錯了。

語文裡,我們說「雪是白的」是對的,如果說「雪是黑的」,就是語義錯誤。

c語言中語義錯誤有各式各樣。例如:

#include

#include

void main()

程式沒有語法錯誤,應當是 c = sqrt(a-b);

寫成sqrt(b-a); 出現負數開方,錯誤。

c語言語法錯誤和語義錯誤有什麼區別,麻煩舉個例子

3樓:萌萌水月喵

語法錯誤可以看作是編碼出現了違反c語言規則的錯誤,一般編譯或者連結時,

都會報錯的。

而語義錯誤,也可以叫做邏輯錯誤,

也就是說你的**完全符合c語言的規範,不會出現編譯/連結的錯誤,但是,在邏輯上有錯誤。

舉個簡單的例子,

加入編一個**來統計int陣列a的成員總和,成員總數為n:

for(int i=0;i

sum=sum+a[i];

for(int i=0;i<=n;i++) //這裡多了一個i=n的取值,這是語義錯誤

sum=sum+a[i];

C語言的錯誤,C語言中的錯誤和警告有什麼區別

語法錯誤,return前面缺少分號,上面一句printf最後沒加表示語句結束的分號 話說要學程式設計還是把英語練練吧,這麼簡單的英文提示都看不懂,以後比較麻煩 錯誤會導致程式無法編譯通過,進而不能執行而警告是說程式中有些 編寫不是非常恰當,不會影響程式編譯,在少數情況下會影響程式執行一般警告可以忽略...

c語言中wb,rb是什麼意思,C語言中c是什麼意思

在c語言的檔案操作中,wb和rb分別對應著對二進位制檔案的兩種操作方式 寫操作和讀操作 c語言中 c是什麼意思 用於格式化輸入輸出函式中,針對char型別的匹配。比如 輸入 用於輸入一個字元型。輸出時類似。所有的格式化輸入輸出函式,都可以用這個。c語言中的 c 是什麼意思?例如printf c c ...

pa在C語言中的意思,c語言中pa是啥子意思

a是一個指標 把指標a所指向的內容賦值p a為指標 a表示指標地址的內容 p a 把指標內容賦值給p 將a指向的變數的值賦給p c語言中p a是啥子意思 p 是一個結構體或者共用體型別資料的指標。p a表示訪問該指標上,名為a的資料成員。等效於 p a p是一個結構體型別的指標變數,這個結構體中有一...