const int *point=0为什么是正确的

[复制链接]
查看11 | 回复2 | 2009-8-24 17:40:12 | 显示全部楼层 |阅读模式
你这条语句不是赋值,而是初始化
回复

使用道具 举报

千问 | 2009-8-24 17:40:12 | 显示全部楼层
0 例外NULL 就是0
回复

使用道具 举报

千问 | 2009-8-24 17:40:12 | 显示全部楼层
赋值为0的意思是让它指向内存地址为0的地方,这样指针就安全了。每个程序都会预留一定的内存空间(0x00000000~0x0000ffff)做特殊的用途,这段空间一般是不可写的.例如上面语句,*point = 1;程序会跑出异常的,告诉你这是个空指针,你 应该赋值了之后再用!如果你这样定义一个指针int* ptr;不给它赋值,他指向的地址是随机的,比如一个程序中int money = 100000;money在内存中的地址为0x000fffff,而刚才定义ptr指向的值刚好随机到0x000fffff(真是够倒霉的),而你在程序中又不小心使用了ptr,例如*ptr = 200;好了,完了,100000块钱变200快了!要是在银行系统中的话,呵呵,自己想吧
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行