我今天看到一个笑话是这样的:
下面的代码行将使每个C程序运行得更快:
*((int *)0) = 5;
我不太明白这是怎么回事。看起来他们把0转换成一个int指针,然后让指针指向那个5.?
这一行代码是做什么的?
发布于 2015-05-16 22:31:31
这是未定义的行为,很可能导致程序崩溃。因此,终止程序,并使其“更快”。
发布于 2015-05-16 22:35:19
我认为这是因为地址0被赋值为空值,检查Why is address zero used for the null pointer?可能会很有帮助。
https://stackoverflow.com/questions/30281405
复制相似问题