0

実行後、結果は非常に奇妙でした:

#include <stdio.h>
int main(){
  int a,b; 
  printf("enter two numbers :");
  scanf("%d%d",&a,&b);
  if(a>b){
    printf("maximum number is %d",&a);
  } 
  else{
    printf("maximum number is %d",&b);  
  }
  return 0; 
}

コンソールに 2 つの数字を入力すると、次の結果が得られました。

maximum number is 2686696

2686696 5 のような 2 つの数字を入力すると、私にとっては非常に奇妙です。

誰でも私を案内できますか?

4

4 に答える 4

5

値ではなくアドレスを出力しようとしてintいます。これを行う:

if(a>b){
    printf("maximum number is %d",a);
}
else{
    printf("maximum number is %d",b);  
}

&演算子はaまたはのアドレスを返しますb

于 2013-11-11T15:18:35.183 に答える
0

printf の & は、値の代わりに変数のアドレスを出力します。

値を出力するには、次を使用します。

if(a>b){
   printf("maximum number is %d",a);
}
else{
    printf("maximum number is %d",b);  
}
于 2013-11-11T15:20:28.627 に答える
0

数値を出力したい場合は&の引数から operator を削除し、とのアドレスを出力しようとしている場合は書式指定子を に変更します。 printfab%d%pab

printf("maximum number is %p", (void *)&a);
于 2013-11-11T15:20:42.983 に答える
0

&fromを削除しprintfて値を出力すると、アドレスが出力されます。次のようにする必要があります。

printf("maximum number is %d",a);
于 2013-11-11T15:18:30.697 に答える