教科書で次のコードを見つけました。
#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)
ですか?