又是HDU2004那题,开始是直接暴力if-else→puts输出的,
结果发现是[Warning] passing argument 1 of 'puts' makes pointer from integer without a cast [enabled by default] .
像我这种喜欢钻牛角尖的,尤其还是这种时间充裕的情况下,就想知道puts究竟做错了什么,就不能代替printf了。
经过一番学习。。我终于明白了。
1.printf()函数是格式化输出函数,书写格式为 printf("<格式化字符串>", <参量表>);
其中格式化字符串包括两部分内容: 一部分是正常字符, 这些字符将按原样输出; 另一部分是格式化规定字符, 以"%"开始, 后跟一个或几个规定字符,用来确定输出内容格式。
2.puts()函数用来向标准输出设备(屏幕)写字符串并换行。其调用格式为:puts(s); 其中s为字符串变量(字符串数组名或字符串指针)。相当于printf("%s", s);对了,还得加个换行符→printf("%s\n",s);
对了,puts()函数只能输出字符串,不能输出数值或进行格式变换。
还有printf显示更清晰,puts运行更快。
这都不是重点,重点是我输出的时候是这样的puts('A');而实际应该是puts("A");这样的。。太难受了。。单引号代表的是单个字符,而双引号输出的就是字符串,符合标准了。
然而我一直对它错误的理解是基于char a = 'A',这种。还是得慢慢学习哇。。