关于puts和printf区别

又是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',这种。还是得慢慢学习哇。。

 

全部评论

相关推荐

头像
10-16 09:58
已编辑
门头沟学院 Java
点赞 评论 收藏
分享
点赞 1 评论
分享
牛客网
牛客企业服务