一、C語言中的合法整型
首先C語言中的整型有三種表示方式:十進位制、八進位制和十六進位制。(C語言中沒有表示二進位制的整型)
十進位制:
如 int a = 63; //一個正常的整型
八進位制:
如果想用8進位制對變數進行賦值則這樣
int a = 077; //八進位制給整型賦值
以數字0開頭,由0~7組成
十六進位制:
int a = 0x3F; //十六進位制給整型賦值
以0x開頭,由0~F組成
所以我們對合法整數的判斷,可以首先從進位制判斷入手,
- 若以0開頭,則為八進位制,不能出現大於等於8的數字;
- 若以0x開頭,則為十六進位制,數字的範圍為0~F;
- 若都不是,則為十進位制,要求數字為0~9。
二、C語言中的合法字元
C語言中的字元常量要求以單引號 ` ` 括起來,否則為非法字元。
除了直接表示的字元外,部分為轉義字元比如
` ` // 換行 ` ` // 製表 `\` // 斜杆 `"` // 引號
還有一部分為用八進位制或十六進位制整型表示的字元,在對應數值前加上斜槓,注意C語言規定不允許使用斜槓加十進位制表示字元!
`?` // 直接表示的?字元 `x3F` // 十六進位制表示的?字元 `