C语言学习
C语言学习
mengnankkzhouc语言
变量和数据类型
数据类型(data type)
数据是放在内存中的,变量是 给这块内存起的名字,有了变量就嫩找到并使用这份数据。
字符型 char 1
短整型 short 2
整型 int 4
长整型 long 4
单精度浮点型 float 4
双精度浮点型 double 8
无类型 void
(最基本的数据类型,数字为数据的长度)
数据类型只在定义变量时指明,而且必须指明;使用变量时无需再指明,因为此时的数据类型已经确定了。
数据的输出
我们可以使用puts来输出字符串,puts只能用来输出字符串。
而printf可以输出许多类型的数据.
1 | printf("%d",a); |
其中%d叫做格式控制符,格式控制符均以%开头,后面跟其他的字符
%d 十进制
%c 字符
%s 字符串
%f小数
puts函数将较长的字符串可以分割成几个短的字符串
1 | puts("s" "s" "s"); |
C语言当中的整数
int 一般占用四个字节,共计32bit,其数字非常大。
可以用short long让其内存占用更少或者更多。
占用字节数如下
2 ≤ short ≤ int ≤ long
sizeof操作符
获取某个数据类型的长度可以用sizeof操作符
sizeof 用来获取某个数据类型或变量所占用的字节数,如果后面跟的是变量名称,那么可以省略( )
,如果跟的是数据类型,就必须带上( )
。
%hd用来输出short int
%d用来输出int
%ld用来输出long int
二进制八进制十六进制
进制的开头
二进制的开头必须使用0b或者0B
八进制必须用0开头
十六进制由0~9字母a~f(A~F)组成,使用时必须使用0x或者0X开头
进制的printf
short int long
八进制 %ho %o %lo
十进制 %hd %d %ld
十六进制 %hx %x %lx
大小写表示用大写还是小写来输出十六进制数
区分不同进制数字的一个简单办法就是,在输出时带上特定的前缀。在格式控制符中加上#
即可输出前缀,例如 %#x、%#o、%#lX、%#ho 等。
c语言中的正负数
c语言中把内存的最高位作为符号位。在编程语言中计数常常从0开始,0作为第一位。
不希望设置符号位的时候可以输入unsigned关键字
1 | unsigned short a = 12; |
这样就没有符号位了。
无符号数的输出
unsigned short unsigned int unsigned long
八进制% ho% o% lo
十进制 %hu %u %lu
十六进制 %hx 或者 %hX %x 或者 %X %lx 或者 %lX
c语言中的小数
-
2.1E5 = 2.1×105,其中 2.1 是尾数,5 是指数。
-
3.7E-2 = 3.7×10-2,其中 3.7 是尾数,-2 是指数。
-
0.5E7 = 0.5×107,其中 0.5 是尾数,7 是指数。
float为单精度 double为双精度
float占用四个字节 double占用8个字节
-
printf输出小数的格式
-
%f 以十进制形式输出 float 类型;
-
%lf 以十进制形式输出 double 类型;
-
%e 以指数形式输出 float 类型,输出结果中的 e 小写;
-
%E 以指数形式输出 float 类型,输出结果中的 E 大写;
-
%le 以指数形式输出 double 类型,输出结果中的 e 小写;
-
%lE 以指数形式输出 double 类型,输出结果中的 E 大写。
其中规则%f 和 %lf 默认保留六位小数,不足六位以 0 补齐,超过六位按四舍五入截断。将整数赋值给 float 变量时会变成小数。 以指数形式输出小数时,输出结果为科学计数法;也就是说,尾数部分的取值为:0 ≤ 尾数 < 10。
小数的默认类型为double
将整数赋值给小数加0即可,将小说=数赋值给整数只能取其整数部分。
字符
字符的经常类型为char 长度为1,只能容纳 ASCII 码表中的字符,也就是英文字符。字符类型由单引号
' '
包围,字符串由双引号" "
包围。其中空格也是一个字符,在使用printf输出字符是,char对应的格式控制符为%c转义字符串:
以\或者\x开头,以
\
开头表示后跟八进制形式的编码值,以\x
开头表示后跟十六进制形式的编码值。对于转义字符来说,只能使用八进制或者十六进制。转义字符的初衷是用于 ASCII 编码,所以它的取值范围有限:
- 八进制形式的转义字符最多后跟三个数字,也即
\ddd
,最大取值是\177
; - 十六进制形式的转义字符最多后跟两个数字,也即
\xdd
,最大取值是\x7f
。
- 八进制形式的转义字符最多后跟三个数字,也即
转义字符 | 意义 | ASCII码值(十进制) |
---|---|---|
\a | 响铃(BEL) | 007 |
\b | 退格(BS) ,将当前位置移到前一列 | 008 |
\f | 换页(FF),将当前位置移到下页开头 | 012 |
\n | 换行(LF) ,将当前位置移到下一行开头 | 010 |
\r | 回车(CR) ,将当前位置移到本行开头 | 013 |
\t | 水平制表(HT) | 009 |
\v | 垂直制表(VT) | 011 |
' | 单引号 | 039 |
" | 双引号 | 034 |
\ | 反斜杠 | 092 |
\n
和\t
是最常用的两个转义字符:
-
\n
用来换行,让文本从下一行的开头输出,前面的章节中已经多次使用; -
\t
用来占位,一般相当于四个空格,或者 tab 键的功能。强制转换
1
(type_name) expression
type_name
为新类型名称,expression
为表达式