Chinaunix首页 | 论坛 | 博客

分类: C/C++

2012-11-15 18:41:09

二级指针是什么,什么时候用到二级指针。这估计是大家都想知道的。。。
最近一直在看hlfs的源代码,有什么对二级指针的一个应用。可是总不是很懂这个东西。。今天就好好的说下。。

当你想对一个地址做修改的时候,就要用到二级指针。。
下面是一个例子:


void buf ( int **a )
{
(  *a) = ( int* )malloc ( sizeof ( int ) );
( **a )= 1;
printf ( "%d",**a );

}

int main( int argc, char *argv[] )
{
int  *a;
buf ( &a );
       //printf ( "%d",*a );
}
当你要给*a赋值的时候,发现他是一个指针,没有内存空间来存储值,不能直接给他赋值,要给他先创建一个内存空间。当然你可以直接的malloc ()在主函数里。。这个就不说了。。
但是,如果你想要在调用一个函数实现呢:
你可以这样想,如果我有一个东西,能接受我的这个指针的地址,这样就可以在调用的函数里面通过他的地址,就可以在调用的函数里面,进行malloc (),而这个能存储地址的就是二级指针。。

二级指针就是用在当你要修改一个地址的时候。。这个东西就登场了。。

顺便说下,没有内存空间的指针是不能赋值的。。。这一点是最重要的,希望大家不要犯错啊。。
阅读(11810) | 评论(1) | 转发(2) |
给主人留下些什么吧!~~

faf882012-11-16 20:16:03

謝謝分享~
与其羡慕别人富有!到不如自己来创造自己的财富!
只要您愿意做,只要您愿意开始做,不用入会费,不用加盟金,
免费注册网址>> http://migre.me/bFG4O
觉得适合你再投入(合法经营,需满18岁)