人较笨且记性不好,故记录在此.折叠代码打不开请F5.本博中很多是转载收录其他网友的文章(原文地址请见博文末尾),所有权为原作者所有!!!
此博客已不再更新和维护,欢迎关注我的github新博客

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: :: 管理 ::

1
#include <stdio.h>
2 void main()
3 {
4 int i=4;
5 int*p=&i;
6 //int *p=(int *)4;
7 printf("%d\n",*p);
8 printf("%p\n",p);
9 *p=12;
10 printf("%d\n",*p);
11 printf("%p\n",p);
12 getchar();
13 return;
14 }

当为 int *p=(int *)4的时候会报错。
因为 4在内存中没有相应地址映射,p指向的是非法地址。 

ps:在对指针操作时,如果拿不住,还是if()一下比较安全。 

posted on 2011-06-05 16:52  子坞  阅读(1333)  评论(0编辑  收藏  举报