- getchar()会让程序暂停,等待输入。(用于窗口一闪而过的情况)
- printf中,%+字母 表示待打印的量,其中
- %d---(十进制)整数
- %u---无符号整数(unsigned int)
- %o---(八进制)整数
- %f---浮点数(带小数的数?)
- %e---科学计数法表示的浮点数
- %c---字符
- 可加前缀l表示long,如%ld、%lf、%le
- 可加前缀h表示short,如%hd、%hu、%ho(详见第4章)
- 用int声明整数
- 用float声明浮点数
- 用char声明字符变量
- _Bool声明布尔值(true或false)
- _complex声明复数
- _Imaginary声明虚数
- 16位的范围-32768~32767(unsigned 0~65535)
- 32位的范围-2147483648~2147483648(unsigned 0~4294967296)(10位数)
- 64位的范围
-9223372036854775808~+9223372036854775808(19位数)
(0~18446744073709551615)(20位数)
- short的占用的存储空间不能多于int
- long占用的存储空间不能少于int
- 个人计算机上最常见的设置是,long long占64位,long占32位,short占16位,int占16位或32位
- int类型被认为是计算机处理整数类型时最高效的类型。因此,在short和int类型的大小不同的计算机中,用int类型的参数传递速度更快。
-
char的基本声明方式
char grade = 'B'; \\此处的grade是变量名
- 奇怪的是,C语言将字符常量视为int类型而非char类型。在int为32位、char为8位的ASCII系统中,字符常量'B'对应的数值66被储存在一个32位的储存单元中,然后再赋予给8位的char变量grade。
- 假如我们定义一个字符常量'fate'(即把4个独立的8位ASCII码储存在一个32位存储单元中),再把这样的字符常量赋予给一个char字符变量,那就只有后8位有效,所以最终这个变量的值是'e'。
-
非打印字符
转义字符 | 意义 | ASCII码值(十进制) |
---|---|---|
\a | 响铃(BEL) | 007 |
\b | 退格(BS) ,将当前位置移到前一列 | 008 |
\f | 换页(FF),将当前位置移到下页开头 | 012 |
\n | 换行(LF) ,将当前位置移到下一行开头 | 010 |
\r | 回车(CR) ,将当前位置移到本行开头 | 013 |
\t | 水平制表(HT) (跳到下一个TAB位置) | 009 |
\v | 垂直制表(VT) | 011 |
(TAB位置通常是第1个、 第9个、 第17个、 第25个等字符位置)
-
c提供两种方法来表示这些字符
- 使用ASCII码
char beep = 007;
2.使用转义序列
char beep = '\a';
- 由于| " | ' | \ |这些字符用于定义字符常量,是printf()函数的一部分,若直接使用它们会造成混乱,所以也用转义序列表示。如
/*打印一下内容
"You \ are good "
*/
printf("\"You \\ are good\"");
//代码变黑的地方就是转义序列
- 如果在转义序列和ASCII码中来选一个,那应该选择转义序列,因为转义序列在不支持ASCII码的系统中也适用,可移植性更高。
- C标准规定,float类型必须至少能表示6位有效数字,且取值范围至少是10-37~10+37。
- 通常,系统储存一个浮点数要占用32位。其中8位用于表示指数的值和符号,剩下24位用于表示非指数部分(也叫作尾数或有效数)及其符号。
- 还有double和long double,表示更高精度的浮点数