level 7
折行下面这段程序:
#include <stdio.h>
int main()
{
printf("%c\n", 4["Hello"]);
return 0;
}
程序会为你打印出一个漂亮的o
这是怎么来的,很简单。
在c语言里面a[b]在编译的时候,会被解释成*((a) + (b));
加法是可以交换的,所以4["Hello"]相当与"Hello"[4]。
虽然"Hello"[4]看起来也有些奇怪,但好歹能理解结果为什么是o了。
这个东西全无用处 —— 至少好像还没有发掘出它的用处 —— 除了可以向别人炫耀一下你对C语言有多“了解”。
2010年12月29日 03点12分
1