私はで次の例を見てきましたが、あなたのc(著者:Yashvant Kanetkar)をテストしました。なぜsizeof()演算子はCで異なる出力
次の例では、sizeof()
は出力8
です。
#include<stdio.h>
double d;
int main()
{
(int)(float)(char)d;
printf("%d\n",sizeof(d));
}
しかし、第二の例では、sizeof()
は出力4
を与えます。
#include<stdio.h>
double d;
int main()
{
printf("%d\n",sizeof((int)(float)(char)d));
}
なぜ両方の出力が異なるのですか?本には何の説明もありません。
'(INT)(フロート)(CHAR)D;最初の'この行は効果がありません。したがって、 'sizeof(double)'として終わります。 2番目の例では 'sizeof(int)'があります。 – DeiDei
この本を投げてください。何も役に立たないことを教えているわけではありません。 –
'(int)(float)(char)d;'は 'sizeof'の使用には影響しません。それは何の効果もありません。それは無意味なコード行です。合理的なCコンパイラで警告が十分に出ると、その旨のヒントが得られます。例えば、 "main.c:16:5:Expression result unused" – WhozCraig