『新・明解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で表示している。

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


書籍情報



Copyright (C) 2016 "HYOGOKURUMI" All Rights Reserved./「来未炳吾・平極ルミ・HYOGOKURUMI」の発達障害考察を主とした全ての発信は、相互不干渉など特別な約束をした者達を除き、どなたでもご活用できます。ただし著作権は放棄しておりません。あしからずご了承ください。詳細は著作権に関するガイドラインをご一読ください。/「HYOGOKURUMI.site」は、Amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイトプログラムである、Amazonアソシエイト・プログラムの参加者です。