Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
不带引号的数字参数有什么作用printf?
printf
例如printf( 3 + "goodbye");导致输出 dbye。为什么我会得到这个输出?
printf( 3 + "goodbye");
3 + "goodbye"相当于&"goodbye"[3]- 换句话说,它只是指向“goodbye”的第四个元素的指针,因此您的示例将打印“dbye”。
3 + "goodbye"
&"goodbye"[3]
这不是一个“数字参数printf()”,真的。被调用的函数只是得到一个指针参数,像往常一样(第一个参数printf()是格式字符串指针。
printf()
您只是使用指针算法将指向字符串的指针增加"goodbye"3 个字符,实际上跳过了前三个字符,从而将余数"dbye"作为参数。
"goodbye"
"dbye"