C语言中printf函数的问题
为什么下面程序运行结果与源代码一模一样?#include
main(){char*a="main(){char*a=%c%s%c;printf(a,34,a,34);}";printf(a,34,a,34);}
“printf(a,34,a,34)”这一句我没有想明白,百科上说“printf()函数的调用格式为: printf("<格式化字符串>", <参量表>)”,但这里没有“格式化字符串”,我也不懂参量表是什么东东。
我现在的想法是由于字符串本身就是地址,printf(a,34,a,34)中的a就是"main(){char*a=%c%s%c;printf(a,34,a,34);}"的地址,但我改成printf(a)后,打印会有乱码。另外printf中的34起到了什么作用?
小弟刚刚学习C语言,还请各位指教,先谢谢了!