printf("x%%y=%d\n", x%y );
只打一个%会被认为是格式符号,%%则会被认为是%。
如果只有一个%的话,假设你定义的不是y,而是d
你的语句就会变 printf("x%d=%d\n", x%y );他就会以为你这个是%d,是赋值输出结果。
而用了两个%,就相当于输出一个%。
可以把它当做特殊的转义字符。