re: 自己工作中犯的幾個小問題 郭龍 2012-05-23 23:58
@鐘謝偉
修改之后,通過返回值傳回來,這個具體深入原因我也不太理解。
看了你的隨筆 <<函數(shù)參數(shù)傳遞,一二事 >>
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,也就是修改了變量。
通過指針的方式給函數(shù)參數(shù)傳值呢,從根本上來講,它仍然是直接傳值。
但是二級指針不好用,昨天就出現(xiàn)問題了,暈
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);
修改之后,通過返回值傳回來,這個具體深入原因我也不太理解。
看了你的隨筆 <<函數(shù)參數(shù)傳遞,一二事 >>
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,也就是修改了變量。
通過指針的方式給函數(shù)參數(shù)傳值呢,從根本上來講,它仍然是直接傳值。
但是二級指針不好用,昨天就出現(xiàn)問題了,暈
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
學習,學習,時刻關注。