glxhyt

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  15 随笔 :: 0 文章 :: 4 评论 :: 0 Trackbacks
@钟谢伟
修改之后,通过返回值传回来,这个具体深入原因我也不太理解。

看了你的随笔 <<函数参数传递,一二事 >>
void SetToSix(int *&pTempPtr)
这个也可以修改成二级指针
void SetToSix(int **pTempPtr)
{
*pTempPtr = &nSix;
}

int iTemp = 5;
int *p = &iTemp;
SetToSix(&p);

基本如下:
| --------------|
| 0x0000 FFF1 | -----> 5
|---------------|

|--------------|
| 0x0000 FFF5 | ------> 0x0000 FFF1
|--------------|

修改了指针 0x0000 FFF1,也就是修改了变量。

通过指针的方式给函数参数传值呢,从根本上来讲,它仍然是直接传值。

但是二级指针不好用,昨天就出现问题了,晕

1:只能取出来第一个
int *p[5] = {NULL,};
void Fun(int **p, int *iNum);
Fun(p, &iNum) 或者Fun(&(p[5]), &iNum);
都只能取出来第一个,希望你有时间研究一下,我昨天搞晕了

2:Right
最后改成
int *p = NULL;
int iNum;
Fun(&p, &iNum);
3:Error
int**p = NULL;
Fun(p);
re: 关于C/C++指针的两个要点 郭龙 2011-03-28 22:54
受益了
re: strlen源码剖析 郭龙 2010-11-07 14:37
学习,学习,时刻关注。