printf的问题

来源:百度知道 编辑:UC知道 时间:2024/07/05 01:26:54
printf("name");
printf(""name"");
printf("""name""");
解释一下第二第三个的用法,其中一个是错误的!

1.
真正的双引号字符应该是'\"',所以""""这样的书写表示两个空字符串,"\"\""才是内容为两个双引号的单个字符串
2.
printf()的格式表达中,可以写成多个字符串的格式,函数会把这多个字符串合并成一个字符串来看,即"表达式1""表达式2""表达式n"会被看作"表达式1表达式2表达式n"
例如:printf("%d""%d",3,5);其实就是printf("%d%d",3,5);

所以:
printf("name"); //输出字符串name
printf(""name""); //错误,name前后表示两个空字符串,而name本身不在输出格式字符串中
printf("""name"""); //三个字符串,前后两个是空串,中间是"name",所以输出name

printf(""name""); 错误,因为name是字符串,而name前后是2个空字符串,输出之后,name无"",所以错误
printf("""name""");正确,name前后都是空字符串,中间是"name",可以正确输出

理解一下这个函数的参数形式。不要被吓到了。很简单的。

引号为就近成对原则

第二个是错误的。
改为printf("\"name\"");