最近在回顾C语言的知识,在这里记录下来。希望会对有缘看到的你有帮助。
一、数据类型
基本类型
- 整型
- 浮点型
- 字符型
- 枚举型
- 指针型
空类型
- 空类型
构造类型
- 数组
- 结构体
- 共用体
-
整型
分为长整形(long int、long long int)、整型(int)、短整型(short)。
在32为机中短整型占2个字节、其余的各占4个字节。
长度一般遵循:短整型 <= 整型 <=长整形。
另外又可将整型数据分为有符号和无符号整型。
-
浮点型
-
即实数分为单精度(float)和双精度(double)
-
表示方法:
- 小数形式:0.1233,4.789…
- 指数形式:3.0E5、-6.8E18
-
-
字符变量
-
字符变量可以看做是整型变量的一种,一般占一个字节
-
字符变量用于将一个字符存储到内存单元中(整数也可以完成相应的功能),也就是将该字符的ASCALL码值存储到内存中。
-
分为有符号(signed char,一般省略signed),无符号(unsigned char)。范围分别为(-128-127)、(0-255)。
-
字符常量:
-
用单引号括起来的,如:‘a’,‘b’,’+’,’?'等等。
-
转义字符
字符形式 含义 \n 换行 \t 水平跳到下一制表位置 \b 向前退一格 \\ 反斜线符’’ \r 回车 \f 换页,将光标移到下一页的开头
-
-
-
枚举
-
在实际问题中有些变量的取值被限定在一个有限的范围内,如一周只有七天,此时我们就可以用枚举类型来表示。
enum 枚举名 { 枚举值列表; };
-
枚举值列表中声明的第一个枚举成员值的值默认为0(在没有未该变量赋初值的情况下),以后的枚举成员值是是前一个枚举成原值加1得到的。
enum { morning; afternoon = 2; evening; };
如上例中,morning的值为0,evening的值为3.
- 注意:这里为枚举类型的赋值必须为整型,否则编译器会报错,另外所赋值也不能超过整数可表示的范围
-
枚举类型是一种基本的数据类型,因为他不能再分解成其他的类型。
-
-
指针
- 内存单元的编号,通过该编号我们可以找到该编号所对应的内存中的值。
- 因为32位机的地址长度为32bit,因此无论哪种类型的指针其长度都是4字节。(这个很容易被考到的)
- 字符串常量
- 字符串常量和字符常量有很大的区别的,字符串常量是指用双引号括起来的一串字符。
- 由于字符串在存储的时候系统会自动在末尾加上ASCALL值为0的’\0’,所以长度为n字符常量在内存中战友n+1个字节的空间。
- 注意:字符常量和字符串常量的区别,如字符常量’A’占一个字节,字符串常量"A"占两个字节。
- 当一个字符串常量出现在一个表达式中的时候,表达式所使用的值是存储该字符串常量的内存首地址,而不是这些字符本身,我们通常将字符串常量赋给一个字符类型的指针,用于指向该字符串在内存中的首地址
如:
char *p = "we are chinese!";