2013-11-09 59 views
1

我想通過另一個指針引用指向數組的指針。將數組引用到指針

實施例:

void exp() 
{ 
    double var[2]; 
    exp1(&var[0]); 
    printf("\n varvalue is %lf\n",var[0]); 
} 

void exp1(double *var) 
{ 
    //updating the value 
    *var[0]=4.0; 
    exp2(&var[0]); 
} 

void exp2(double *var) 
{ 
    *var[0]=7.0; 
} 

這應該更新.I正在逐漸像無效的參數類型的一元()*數組中的值作爲7.0(最後更新)。我該如何解決這個問題?

回答

1

*var[0]刪除*運營商。在功能exp1,它應該是

var[0] = 4.0; 

在功能exp2,它應該是

var[0] = 7.0; 

或者你可以刪除[0]*var相當於var[0]

2

exp1exp2變量var是一個指針。所以使用正常的數組下標與解引用變量相同。您嘗試解除引用變量兩次

要知道的一件好事是*varvar[0]相同。或者更確切地說,*(var + x)var[x]相同。 (而作爲一個好奇心,由於另外的交換性質,*(var + x)相同*(x + var)導致var[x]是一樣的x[var]

1

*var[0]刪除多餘*

var[0]*(var + 0)*var相同,這已經是您需要分配的內容。