printf
中没有引号的数字参数是什么?
e.g。 printf( 3 + "goodbye");
导致输出dbye。为什么我得到这个输出?
答案 0 :(得分:5)
3 + "goodbye"
相当于&"goodbye"[3]
- 换句话说,它只是指向“再见”的第四个元素的指针,因此您的示例将打印“dbye”。
答案 1 :(得分:0)
这不是printf()
"的数字参数,真的。被调用的函数就像往常一样获取单个指针参数(printf()
的第一个参数是格式字符串指针。
您只需使用指针算法将指针增加到包含3个字符的字符串"goodbye"
,实际上跳过前三个字符,从而将余数"dbye"
作为参数。< / p>