1. char //字符数据类型
short //短整型
int //整形
long //长整型
long long //更长的整形
float //单精度浮点数
double //双精度浮点数
struct关键字是用户用来自定义的结构体类型,不属于C语言的内置类型
2.求字符串长度用 strlen 。例如strlen("abc"),输出结果为3;
\+一个字母,符号,会默认为一个转义字符,长度为一。
3.C语言的语句一般分为5类
空语句 : 最简单,一个分号;就是一个空语句
表达式语句:在表达式后面加分号,例如b=a+5; 。
函数调用语句: 函数调用的时候也会加上分号,称为函数调用语句。
复合语句: 成对括号中的代码构成一个代码块,也被称为复合语句。例如for(i=0;i<=5;i++),for循环的循环体的大括号中的就是复合语句。
控制语句 :控制语句用于控制程序的执行流程,以实现程序的各种结构方式(C语言支持三种结构:顺序结构、选择结构、循环结构),它们由特定的语句定义符组成,C语言有九种控制语句。
可分成以下三类:
1.条件判断语句也叫分支语句:if语句、switch语句;
2.循环执行语句:do while语句、while语句、or语句;
3.转向语句:break语句、goto语句、continue语句、return语句。
4.C语言的注释有两种形式:一种是将注释放在/*与/*之间;另一种是在注释的每行前加// 。
5.数据类型包括两类,一类是内置类型,是语言本身就有的类型,包括字符,整形,浮点型,布尔类型;另一类为自定义类型,自己来创建类型,包括数组,结构体-struct,枚举-enum,联合体-union 。
字符:char, signed char表示有符号的char,unsigned char表示无符号的char。
整形:1 短整型 short
short int
signed short int
unsigned short int
整型 int
signed int
unsigned int
长整型long int
signed long int
unsigned long int
C99中引入
long long int
signed long long int
unsigned long long int
浮点型:float, double, long double 。
布尔类型:C语言原来并没有为布尔值单独设置一个类型,而是使用整数0表示假,非零值表示真。
在C99中也引入了布尔类型,是专门表示真假的。
布尔类型的使用得包含头文件<stdbool.h>
布尔类型变量的取值是:true或者false(布尔类型用的不多)
6.C语言使用signed和unsigned关键字修饰字符型和整型类型的。
signed关键字,表示一个类型带有正负号,包含负值;
unsigned关键字,表示该类型不带有正负号,只能表示零和正整数。
对于int类型,默认是带有正负号的,int等同于signed int
由于这是默认情况,关键字signed一般都省略不写,但是写了也不算错。
int类型也可以不带正负号,只表示非负整数。这时就必须使用关键字unsigned声明变量。
整数变量声明为unsigned的好处是,同样长度的内存能够表示的最大整数值,增大了一倍。
比如,16位的signed shortint的取值范围是:-32768~32767,最大是32767;而
unsigned short int的取值范围是:0~65535,最大值增大到了65535。32位的 signed int的取值范围可以参看limits.h中给出的定义。
其实每一种数据类型有自己的取值范围,也就是存储的数值的最大值和最小值的区间,有了丰富的类型,我们就可以在适当的场景下去选择适合的类型。如果要查看当前系统上不同数据类型的极限值:
limits.h文件中说明了整型类型的取值范围。
float.h 这个头文件中说明浮点型类型的取值范围。
为了代码的可移植性,需要知道某种整数类型的极限值时,应该尽量使用这些常量。
SCHAR_MIN,SCHAR_MAX:signed char的最小值和最大值。
SHRT_MIN,SHRT_MAX:short的最小值和最大值。
INT_MIN,INT_MAX:int的最小值和最大值。
LONG_MIN,LONG_MAX:long的最小值和最大值。
LLONG_MIN,LLONG_MAX:long long的最小值和最大值。
UCHAR_MAX:unsigned char的最大值。
7.sizeof是一个操作符,计算的是变量所占内存的大小,单位是字节。
计算的是类型创建的变量所占内存的大小,单位是字节。
size_t - 是专门为sizeof 设置的一个类型
size_t 的本质是unsigned int
C语言中把经常变化的值称为变量,不变的值称为常量。
8.变量的分类
全局变量: 在大括号外部定义的变量就是全局变量
全局变量的使用范围更广,整个工程中想使用,都是有办法使用的。
局部变量: 在大括号内部定义的变量就是局部变量
局部变量的使用范围是比较局限,只能在自己所在的局部范围内使用的。
一般我们在学习C/C++语言的时候,我们会关注内存中的三个区域:栈区、堆区、静态区。
1.局部变量是放在内存的栈区
2.全局变量是放在内存的静态区
3.堆区是用来动态内存管理的
9.在变量创建的时候给一个初始值叫初始化,在变量创建好后,再给一个值,这叫赋值。
例如:int a=5 为初始化
a=10为赋值 。
赋值操作符=是一个随时可以给变量赋值的操作符。
C语言支持连续赋值。例如:int a = 3; int b = 5; int c = 0;
c=b=a+3; //连续赋值,从右向左依次赋值的。等同于b=a+3; c=b 。
复合赋值符:在写代码时,我们经常可能对一个数进行自增、自减的操作,如下代码:
int a = 10;
a=a+3;
a=a-2:
C语言中提供了一种更方便的写法:a+=3 ;a-=2 。
++自增1,--自减1;
int a=5
b=++a与b=a++,b的结果并不相同,
原因:b=a++等同于b=a,a+=1
b=++a等同于b=a+1
强制类型转换:形式: (类型)
例如int a =(int)3.14意思是将3.14强制类型转换为int类型,这种强制类型转换只取整数部分