我在教科书中找到了以下代码:
#include<stdio.h>
void disp( int *k)
{
printf("%d",*k);
}
int main( )
{
int i ;
int marks[ ] = { 55, 65, 75, 56, 78, 78, 90 } ;
for ( i = 0 ; i <= 6 ; i++ )
disp ( &marks[i] ) ;
return 0;
}
}
代码工作得很好,但我对逻辑有疑问:
我正在发送数组变量的地址。但在
disp
函数中,我使用指针变量作为参数并打印指针的值。因此,从main
函数发送的参数类型应该与 的参数不匹配disp
。那么它是怎样工作的?我试图通过将
disp
函数更改为void disp( int (&k)) { printf("%d",*k); }
但我收到一个错误。我应该怎么做才能通过将地址作为参数来使其工作,即
void disp(int &k)
?