指针(二)
发表时间:2006-07-04 03:19:03 关键词:C++,MFC,VC,Primer,编程,教程,读书
(点击:) 把这篇文章告诉我的QQ或MSN朋友
指针的初始化与赋值:指针是一个变量,它可以被赋值,也可以被求值。指针可以接受的值只有以下几种:
1、编译时可求值的0值常量。(必须是0,其实就是NULL啦)
2、类型匹配的对象的地址。(也就是用&运算符取一个变量的地址)
3、另一对象末的下一地址。(这种用法主要用在循环里,其实当指针取这个值时,对其所指的内存进行存取往往会导致灾难)
4、同类型的另一个有效指针(如“p=q;”)。
其中第1点,将0值赋给指针,主要是为了有一个状态表示这个指针是“空的”。C/C++通常约定0为NULL,虽然的确存在地址为0的内存,但是别指望用指针来访问这个内存。
初学者怎样才能消除对指针的恐惧?我觉得首要的一点是清醒地认识并且时刻提醒自己“指针也是一个变量”。比如以下两行程序:
int i;
int *p = &i;
看到这儿的人几乎无一例外把p和i联系起来(这当然不是坏事),但是,我觉得更重要的是将p和i分离,心里记住,p是一个变量,该变量是有它的值的,这个值与i的唯一关系是:目前该值正好等于变量i在内存中的位置。两种情况下p与i将毫无关系:
1、p值被改变,如“p = &j;”或“p++;”
2、i变量被释放,如离开了i的作用域。
本站特约顾问律师常州东晟律师事务所朱立律师(电话13915029670,QQ646146109)提醒您:
本站文章皆为作者原创,其它媒体(包括但不限于报刊、杂志、网站、电视、电台)未经作者书面许可严禁转载(或部分摘录)!
本站文章皆为作者原创,其它媒体(包括但不限于报刊、杂志、网站、电视、电台)未经作者书面许可严禁转载(或部分摘录)!
