C语言注释有三种情况
1)单行注释: //
2)多行注释: /* */
3)#if0/1注释:
#if 0
#endif
和
#if 1
#endif
注意:注释不能嵌套,第一个 /* 符号和第一个 */ 符号之间的内容都被看做是注释,不管里面还有多少个 /* 符号
/*
hello world! /*I love you*/
*/
看下面的语句:
y = x/*p /* p指向除数 */
本意似乎是用 x 除以 p 所指向的值,把所得的商再赋给 y。而实际上, /* 被编译器理解为一段注释的开始,编译器将不断地读入字符,直到 */ 出现为止。也就是说,该语句直接将 x 的值赋给了 y,根本不会顾及后面出现的 p。将上面的语句重写如下:
y = x / *p /* p指向除数 */
或者更加清楚一点,写作:
y = x / (*p) /* p指向除数 */
面试题:
#include <stdio.h>
int main (void)
{
int /*...*/i;
char* s = "abcd //efg";
//hello \
world!
//in/*...*/t i;
return 0;
}
前三条注释都是对的,有没有想到。