對程序註釋的理解

C語言中可以有2種註釋方式:/* */  //

1. 在編譯時,編譯器會將註釋剔除,用空格代替原來的註釋

下面的註釋語句是否正確,並給出解釋:

int/*...*/i;                                    //A
char* s = "abcdefg   //hijiklmn";               //B
//Is it a \
valid comment?                                  //C
in/**/t i;                                      //D

A:正確,將/*...*/剔除,換成空格=> int i;

B:正確,雙引號引起來的都是字符串常量,//也不例外

C:正確的,接續符\將//Is it a 和valid comment連接起來,組成一個完整的註釋

D:錯誤,剔除/**/之後,原語句變成了 in t i; 顯然是錯誤的

 2.  /*...*/這種形式的註釋不能嵌套,/*總是與離它最近的*/匹配

例如:/*這是/*非法*/的*/

3.  關於y = x/*p

這個語句的想表達的本意是 將x除以指針p指向的內存的值賦值爲y

fatal error C1071: unexpected end of file found in comment

原因:編譯器把/*當成了一段註釋的開始,直到出現*/纔會結束,這個表達式只是將x賦值給了y,/*是註釋的開始,由於沒有找到註釋的結束*/,所以報錯。


應該改爲: y = x/ *p;   //在/和*之間加一個空格

或者修改爲: y=x/(*p);





發佈了34 篇原創文章 · 獲贊 19 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章