0

不带引号的数字参数有什么作用printf

例如printf( 3 + "goodbye");导致输出 dbye。为什么我会得到这个输出?

4

2 回答 2

5

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

于 2013-05-20T06:56:37.880 回答
0

这不是一个“数字参数printf()”,真的。被调用的函数只是得到一个指针参数,像往常一样(第一个参数printf()是格式字符串指针。

您只是使用指针算法将指向字符串的指针增加"goodbye"3 个字符,实际上跳过了前三个字符,从而将余数"dbye"作为参数。

于 2013-05-20T07:00:50.833 回答