做教育机构的设计哪些网站好app免费制作网站
 C  语言的注释可以出现在  C  语言代码的任何地方。这句话对不对?这是我当学生时我  
 
 老师问的一个问题。我当时回答是不对。好,那我们就看看下面的例子:  
 
 A ), int/*...*/i;  
 
 B ), char* s="abcdefgh //hijklmn";  
 
 C), //Is it a \  
 
 valid comment?  
 
 D), in/*…*/t i;  
 
 我们知道  C  语言里可以有两种注释方式: /* */  和 // 。那上面  3  条注释对不对呢?建议你  
 
 亲自在编译器中测试一下。上述前3条注释都是正确的,最后一条不正确。  
 
 A), 有人认为编译器剔除掉注释后代码会被解析成  inti ,所以不正确。编译器的确会将注  
 
 释剔除,但不是简单的剔除,而是用空格代替原来的注释。再看一个例子:  
 
 /* 这是 */#/* 一条 */define/* 合法的 */ID/* 预处理 */replacement/* 指 */list/* 令 */  
 
 你可以用编译器试试。  
 
 B), 我们知道双引号引起来的都是字符串常量,那双斜杠也不例外。  
 
 C), 这是一条合法的注释,因为 \ 是一个接续符。关于接续符,下面还有更多讨论。  
 
 D),  前面说过注释会被空格替换,那这条注释不正确就很好理解了。  
 
 现在你可以回答前面的问题了吧? 但注意: /*…*/ 这种形式的注释不能嵌套,如:  
 
 /* 这是 /* 非法的 */*/  
 
 因为 / * 总是与离它最近的 */ 匹配。 
