在 C printf() 中,%n 是一个特殊的格式说明符,它不会打印某些内容,而是导致 printf() 加载由相应参数指向的变量,其值等于 printf() 之前已打印的字符数%n 的出现。
上面的程序打印“cxydh for cxydh 10”。第一个 printf() 打印“cxydh for cxydh ”。第二个 printf() 打印 10,因为在第一个 printf() 中的 %n 之前打印了 10 个字符(这 10 个字符是“cxydh for”),并且第一个 printf() 将 c 设置为 10。

#include<stdio.h>
int main()
{
int c;
printf("cxydh for %ncxydh ", &c);
printf("%d", c);
getchar();
return 0;
}