2.1 注释
int/**/i;
结果ok
char* s = "abcdefgh //hijklmn";
结果ok
Is it a\
valid comment?
结果ok
in/**/t j;
结果error
y=x/*p;
y=x/ *p;
y=x/(*p);
结果error
结果ok
结果ok
2.2 接续符和转义符
这是一条合法的\
单行注视
/\
/这也是一条合法的注释
#def\
ine MAC\
RO 这还是一条合法的\
宏定义
\n:回车换行
\t:横向跳到下一个指标位置
\v:竖向跳格
\b:退格
\r:回车
\f:走纸换页
\\:反斜杠符"\"
\':单引号符
\a:鸣铃
\ddd:1~3位八进制数所代表的字符
\xhh:1~2十六进制数所代表的字符
第一个逻辑正确时第二个逻辑将不再执行
if((i++)||(j++))
//不妥,后者可能执行也可能不执行
if((i++)||(fun()))
//不妥,后者可能执行也可能不执行
if((fun())||(a==5))
//合适,前者执行,后者执行否无所谓
printf("char*:%d\n", sizeof(char*));
printf("short*:%d\n",sizeof(short*));
printf("int*:%d\n", sizeof(int*));
printf("float*:%d\n",sizeof(float*));
printf("double*:%d\n"sizeof(double*));
输出4 4 4 4 4
printf("%d\n",0x01<<2+3);
输出32
printf("%d\n",0x01<<2+30);
输出0,不能超过0x01长度
printf("%d\n",0x01<<2-3);
输出0,不能为负数
int i =3;
printf("%d\n",(++i)+(++i)+(++i));
输出16,依赖测试环境
int i =0;
int j = 0;
j = (i++,i++,i++);
printf("%d\n",j);
输出2
;\
i++,printf("Third=%15d",i)\
)
{
printf("Fourth=%20d\n",i);
}
判断条件i<10实际没有发挥作用,逗号表达式取后者的值,可以改成printf("Second=%10d",i),i<10
int/**/i;
结果ok
char* s = "abcdefgh //hijklmn";
结果ok
Is it a\
valid comment?
结果ok
in/**/t j;
结果error
y=x/*p;
y=x/ *p;
y=x/(*p);
结果error
结果ok
结果ok
2.2 接续符和转义符
这是一条合法的\
单行注视
/\
/这也是一条合法的注释
#def\
ine MAC\
RO 这还是一条合法的\
宏定义
\n:回车换行
\t:横向跳到下一个指标位置
\v:竖向跳格
\b:退格
\r:回车
\f:走纸换页
\\:反斜杠符"\"
\':单引号符
\a:鸣铃
\ddd:1~3位八进制数所代表的字符
\xhh:1~2十六进制数所代表的字符
第一个逻辑正确时第二个逻辑将不再执行
if((i++)||(j++))
//不妥,后者可能执行也可能不执行
if((i++)||(fun()))
//不妥,后者可能执行也可能不执行
if((fun())||(a==5))
//合适,前者执行,后者执行否无所谓
printf("char*:%d\n", sizeof(char*));
printf("short*:%d\n",sizeof(short*));
printf("int*:%d\n", sizeof(int*));
printf("float*:%d\n",sizeof(float*));
printf("double*:%d\n"sizeof(double*));
输出4 4 4 4 4
printf("%d\n",0x01<<2+3);
输出32
printf("%d\n",0x01<<2+30);
输出0,不能超过0x01长度
printf("%d\n",0x01<<2-3);
输出0,不能为负数
int i =3;
printf("%d\n",(++i)+(++i)+(++i));
输出16,依赖测试环境
int i =0;
int j = 0;
j = (i++,i++,i++);
printf("%d\n",j);
输出2
c语言提供一种特殊的运算符,逗号运算符,优先级别最低,它将两式联接起来,如:(3+5,6+8)称为逗号表达式,其求解过程先表达式1,后表达式2,整个表达式值是表达式2的值,如:(3+5,6+8)的值是14。(a=3*5,a*4)的值是60。
int i = 0;
for(i=0,printf("First=%5d",i);\;\
i++,printf("Third=%15d",i)\
)
{
printf("Fourth=%20d\n",i);
}
判断条件i<10实际没有发挥作用,逗号表达式取后者的值,可以改成printf("Second=%10d",i),i<10