コードに取り組んでいて、整数の代わりに文字を入力しようとしましたが、入力した文字に関係なく結果が「2」でした。これは未定義の動作ですか、それとも何か他のものですか?
コード:
#include <stdio.h>
int f1(int n);
int f2(void);
int main(void)
{
int t;
printf("Enter a number: ");
scanf("%d", &t);
/* print proper message */
t ? f1(t) + f2() : printf("zero entered.\n");
return 0;
}
int f1(int n)
{
printf("%d ", n);
return 0;
}
int f2(void)
{
printf("entered.\n");
return 0;
}
エントリーすると「2エントリー」となり、エントリーするa
と「2エントリー」となり、g
エントリーしi,h,k,.....
ても結果は同じでした。それは何ですか?