『新・明解C言語 入門編 第2版』演習問題解答例 7ー1

演習7ー1

問:次に示す各式の値を表示するプログラムを作成するとともに、各式の値を説明せよ。ここでnはint型の変数であるとする。

 sizeof 1 sizeof(unsigned) – 1 sizeof n + 2 
 sizeof + 1 sizeof(double) – 1 sizeof (n+2) 
 sizeof – 1 sizeof((double) – 1) sizeof (n+2.0) 

// Ex0701.c

#include <stdio.h>

int main(void)
{
    int n;
    
    printf("sizeof 1                = %zu\n", sizeof 1);
    printf("sizeof +1               = %zu\n", sizeof + 1);
    printf("sizeof -1               = %zu\n", sizeof - 1);
    
    printf("sizeof(unsigned) -1     = %zu\n", sizeof(unsigned) - 1 );
    printf("sizeof(double) -1       = %zu\n", sizeof(double) - 1);
    printf("sizeof((double) -1)     = %zu\n", sizeof((double) - 1));
        
    printf("sizeof n+2              = %zu\n", sizeof n + 2);
    printf("sizeof(n+2)             = %zu\n", sizeof(n + 2));
    printf("sizeof(n+2.0)           = %zu\n", sizeof(n + 2.0));
    
    return 0;
}

コメント

 sizeof 1 = 4 1をsizeof表示している。
 sizeof +1 = 4 +1をsizeof表示している。
 sizeof -1 = 4 -1をsizeof表示している。
 sizeof(unsigned) -1 = 3 int型のままなので1。
 sizeof(double) -1 = 7 double型を1引いているので7。
 sizeof((double) -1) = 8 double型から1引いているので8のまま。
 sizeof n+2 = 6 Int型nのsizeofの値に2を足した値を表示している。
 sizeof(n+2) = 4 int型nに2を足した値をsizeofで表示している。
 sizeof(n+2.0) = 8 int型nに2.0を足した値をsizeofで表示している。

 だと思う・・・自信ないです。


書籍情報


コメント

タイトルとURLをコピーしました