我想用C语言输出%s,为什么printf("%%s")可以输出%s?这是什么原理?
为什么用转义的方式printf("\045")的方式,不能输出%呢?printf("\044")不就能输出$
首先说下%,这是格式吗,后面跟着的是输出内容的格式,\045方式输出和%输出结果都是一样的,因为你没有加对应的格式都不会输出内容,如果你写成\045\045就可以输出一个%,原因和上面说的一样,而$只是一个符号,没有其他功能,所以可以直接输出
前面的是符号输出格式描述符,比如 printf(“%c",'a'); 描述符可有可无,你的
%%s 因为不存在 %%s 的描述符,程序就当做字符串输出了
如果要输出单个字符,可以使用 %c
%%s中,%% 是转义字符,% 所以输出的是%s
"\044" "\045" 由于"\044"是普通字符,可以通过这样的方式输出
printf("\045"); 编译后就是 printf("%"); 当然不能输出 % , C语言规定 通过%%的形式输出 %,就和输出"\" 是一样的,这是特殊字符的输出方式