#include<stdio.h>
#include<conio.h>
int main()
{
char arr[]="\0";
if(printf("%s",arr))
printf("not empty");
else
printf("empty");
return 0;
}
ここで\0
は、配列内の 1 バイトとして取得され、1 バイトprintf
が返されると考えたので、not empty を出力する必要があります。しかし、出力はそれが返されたempty
ことを意味します。では、どのようにかかりますか?printf
0
printf
\0