没有引号的printf中的数字参数有什么作用?

时间:2013-05-20 06:54:51

标签: c arguments printf

printf中没有引号的数字参数是什么?

e.g。 printf( 3 + "goodbye");导致输出dbye。为什么我得到这个输出?

2 个答案:

答案 0 :(得分:5)

3 + "goodbye"相当于&"goodbye"[3] - 换句话说,它只是指向“再见”的第四个元素的指针,因此您的示例将打印“dbye”。

答案 1 :(得分:0)

这不是printf()"的数字参数,真的。被调用的函数就像往常一样获取单个指针参数(printf()的第一个参数是格式字符串指针。

您只需使用指针算法将指针增加到包含3个字符的字符串"goodbye",实际上跳过前三个字符,从而将余数"dbye"作为参数。< / p>