我知道在C ++中使用!!
(a.k.a.double bang)作为转换为bool的技巧(如this)
但是我在米兰的Politecnico上冲浪,我发现了这段代码:
int main() {
char *p, s[6] = "DBPAY";
int a = 3;
p = s;
printf("%c", *(p++));
f( &p, a );
printf("%c !!", *p);
return 0;
}
void f(char ** c, int x) {
void *z = &z;
if( strlen(*c) < 2 )
return;
printf( "%c", (**c)+x );
(*c)++;
f( c, --x );
return;
}
这是一个关于指针算术的简单程序,但我不知道是什么意思:
printf("%c !!", *p);
有人可以解释它的作用吗?
答案 0 :(得分:2)
printf("%c !!", *p);
打印字符p
指向,以及其他一些字符,在这种情况下为" !!"
。它们无关紧要。
答案 1 :(得分:1)
printf("%c !!", *p);
类似于
printf("%c",*p);
printf(" !!");
%c
是字符的格式说明符,您可以打印指针指向的字符。星号告诉取消引用指针。空格和感叹号是将要打印的其他字符。