1. 程式人生 > >程序清單4.11_intconv.c程序_《C Primer Plus》P74

程序清單4.11_intconv.c程序_《C Primer Plus》P74

實踐 In 期望 2018年 turn 轉換 char* 控制 argc

// intconv.cpp : 定義控制臺應用程序的入口點。 // /* intconv.c -- 一些不匹配的整數轉換 */ /* 時間:2018年06月18日 00:27:35 代碼:程序清單4.11_intconv.c程序_《C Primer Plus》P74 目的:整數轉換不匹配的原因,唯有徹底弄清楚補碼才明了 */ #include "stdafx.h" #define PAGES 336 #define WORDS 65618 int _tmain(int argc, _TCHAR* argv[]) { short num = PAGES; short mnum = -PAGES; printf("num as short and unsigned short: %hd %hu\n", num, num); printf("-num as short and unsigned short: %hd %hu\n", mnum, mnum); printf("num as int and char: %d %c\n", num, num); printf("WORDS as int, short, and char: %d %hd %c\n", WORDS, WORDS, WORDS); getchar(); return 0; } /* 在VS2010中運行結果: ---------------------------------------------- num as short and unsigned short: 336 336 -num as short and unsigned short: -336 65200 num as int and char: 336 P WORDS as int, short, and char: 65618 82 R ---------------------------------------------- 翻譯如下: 數字為 short 和無符號 short:336 336 負數字為 short 和無符號 short:-336 65200 數字為 int和char:336 P 詞作為int,short和char:65618 82 R ---------------------------------------------- 總結: 1>.不要期望 %u 轉換能把數字和符號分開; 2>.要細心匹配各種不同類型的數值; 3>.唯有在實踐中慢慢體會與積累經驗; ---------------------------------------------- *


程序清單4.11_intconv.c程序_《C Primer Plus》P74