小编Sat*_*wal的帖子

不了解printf()的奇怪行为

我发现了一个问题,要求输出以下声明:

printf("%d"+1,123);
Run Code Online (Sandbox Code Playgroud)

给出的答案是d,它的解释是:既然"%d"是一个字符串,这里的+1表示d.

123只是被忽略了.我的第一个问题是:为什么123会被忽视?

我还运行了以下声明

printf("%d"+2,123);
Run Code Online (Sandbox Code Playgroud)

它什么都没打印.代码运行但没有错误.我的第二个问题是:为什么代码编译没有错误?

第三次,我做了以下事情:

printf("%d"+0,123);
Run Code Online (Sandbox Code Playgroud)

输出是123.所以我在这里变得非常困惑.如果+1打印d,那么不应该+0打印%

c

1
推荐指数
1
解决办法
149
查看次数

标签 统计

c ×1