Chinaunix首页 | 论坛 | 博客
  • 博客访问: 351059
  • 博文数量: 161
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 345
  • 用 户 组: 普通用户
  • 注册时间: 2013-12-13 11:04
文章分类

全部博文(161)

文章存档

2015年(15)

2014年(144)

2013年(2)

我的朋友

分类: C/C++

2014-10-28 10:38:00

原文地址:浅谈二级指针 作者:我在乎的你

二级指针是什么,什么时候用到二级指针。这估计是大家都想知道的。。。
最近一直在看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 (),而这个能存储地址的就是二级指针。。

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

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