2013-11-09 30 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相同,这已经是您需要分配的内容。