阿杰 发表于 2010-1-27 21:01:17

我想了一个有趣的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]
查看完整版本: 我想了一个有趣的C基础题目,一个只能写不能读的指针