2011-12-24 2 views
1
#include <stdio.h> 
int main() 
{ 
int a=3, b = 6; 
printf(&a["Hi!Hello! %s\n"], &b["Mnnit/Softathalon"]); 
printf(&a["WHAT%c%c%c %c%c %c !\n"], 1["this"], 
2["beauty"],0["tool"],0["is"],3["sensitive"],4["CCCCCC"]); 
return 0; 
} 

출력 :배열 출력 기타

안녕하세요! Softathalon

이것은 C입니다!

왜 출력입니까? 누구든지 다른 형식 지정자를 설명 할 수 있습니까?

+0

왜 ... [i]가'i [a]'와 같은가요? 또는'str [4]'는'4 [str]'과 동일합니까? –

답변

6

모든 배열에 대해 arr[i]*(arr + i)과 같습니다.

후자의 식에서 덧셈이 교환 가능하기 때문에 이것을 *(i + arr)으로 쓸 수 있으므로 i[arr]으로 쓸 수 있습니다.

특히, arr[3]3[arr]은 같은 것을 나타냅니다.

"C에서 할 수있는 이상하게 재미있는 일"중 하나이지만, 진지한 코드는 결코 그런 구조를 사용해서는 안된다는 것은 말할 나위도 없습니다.