#include <stdio.h>
int main()
{
int a=3, b = 6;
printf(&a["Hi!Hello! %s\n"], &b["Mnnit/Softathalon"]);
printf(&a["WHAT%c%c%c %c%c %c !\n"], 1["this"],
2["beauty"],0["tool"],0["is"],3["sensitive"],4["CCCCCC"]);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出:
你好!Softathalon
那是C!
为什么这是输出?任何人都可以解释其中的不同格式说明符吗?
对于任何数组T arr[N],表达式arr[i]都相当于*(arr + i).
因为在后一个表达式中添加是可交换的,所以你也可以将其写为*(i + arr),因此i[arr].
特别是,arr[3]并3[arr]表示同样的事情.
这是"你可以用C做的奇怪有趣的事情"之一,但不言而喻,严肃的代码永远不应该真正使用这样的结构.
| 归档时间: |
|
| 查看次数: |
93 次 |
| 最近记录: |