2014-10-21 1 views
-1

나는 !! (일명 이중 탕은()와 같은 this)
를 bool로로 변환하는 트릭으로 C++에서 사용되는 것을 알고하지만 밀라노의 니코 서핑하고 있었고, 난이 코드를 발견했습니다printf에서 double bang의 기능은 무엇입니까?

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); 

사람은 무엇을 설명 할 수 있을까?

+3

누군가가 출력 텍스트에 느낌표 2 개를 원한다는 의미입니다. 그리고 아무것도. – AnT

답변

2
printf("%c !!", *p); 

캐릭터에게 p 포인트,이 경우 " !!"을 몇 가지 다른 문자를 인쇄합니다. 그들은 무관하다.

1
printf("%c !!", *p); 

printf("%c",*p); 
printf(" !!"); 

%c는 문자의 형식 지정자입니다 유사하며, 해당 포인터가 가리키는 문자를 인쇄 할 수 있습니다. 별표는 포인터를 역 참조하도록 지시합니다. 공백과 느낌표는 인쇄 될 다른 문자입니다.

관련 문제