我想了一个有趣的C基础题目,一个只能写不能读的指针
#include "stdafx.h"int main(int argc, char* argv[])
{
const int a = 0;
int b = 0;
int *p = NULL;
p = ____;
*p = 8;
printf("%d\n", *p);
return 0;
}
请在_____填上一些东西,使其没有语法错误,并且在调试到printf那句的时候使程序崩溃掉。
(言下之意,执行*p = 8的时候是一点问题都没有的)
其实就是指向自己的指针啦 , 哈哈 p = (int *)&p;
反汇编代码,一目了然
8: int *p = NULL;
00401028 mov dword ptr ,0
9: p = (int *)&p;
0040102F lea eax,
00401032 mov dword ptr ,eax
页:
[1]