基本数据类型
关键字:系统预先定义好的,有特殊含义的,并且都是小写,不能重新定义
一共有32个:
数据类型:char、short、int、long、float、double、enum、union、struct、void
控制语句:if、else、for、do、while、switch、case、default、break、continue、goto
存储类型:auto、static、extern、register
const:只读
return:返回函数
signed:有符号数
unsigned:无符号数
sizeof:计算所占内存空间的大小:单位:字节
typedef:给一个已有的数据类型起别名
volatile: 防止编译器优化
转义字符
变量
auto:修饰局部变量,修饰的变量存储在栈区
extern:修饰全局变量,修饰的变量存储在静态区
static:既可以修饰局部变量,也可以修饰全局变量,修饰的变量存储在静态区
register:修饰局部变量,存储在寄存器中;
运算符
单算移关与,异或逻条赋
单目运算符、算术运算符、左移、右移、关系运算符、按位与、异或、按位或、逻辑运算符、
条件运算符、赋值
关系运算符:比较两者之间的关系,结果为(真1或者假0)
sizeof:计算所占内存空间的大小:单位:字节 sizeof(数据类型) sizeof(变量名)
输入输出
Scanf(“格式控制串”,地址表);
printf(“格式控制串”,输出表);
字符的输出和输出
getchar( );返回值:获取到的字符的ascii码值 不获取返回值,则相当于吃掉一个垃圾字符
putchar( ); 需要的参数:字符的ascii码值;
分支及循环语言
If分支结构
If(表达式)
{
语句1;
}
else
{
语句2;
}
循环结构
Switch循环
Switch(表达式)
{
Case 标号1:
语句1;
……
Case 标号n:
语句n;
default:
语句n+1;
}
for循环
for(表达式1;表达式2;表达式3)
{
循环体;
}
冒泡排序
while语句
While(表达式)
{
循环体;
}
do..while语句
do
{
循环体;
}while(表达式)
数组 (特点:1、数据类型相同 2、地址连续)
一维数组:一组数据类型相同的元素组和在一起 Int arr[5]
二维数组:(数组数组):一堆数组的元素组合在一起 Int arr[4][3] ;
行数:一维整型数组的个数
列数:一维整型数组中元素的个数
字符数组:Char str[10] = “hello”; 字符数组的本质就是字符串;
字符串的处理函数(Strlen、 strcpy、strcat、strcmp 头文件:#include <string.h>)
求字符串的长度Strlen(数组名)
字符串的拷贝函数Strcpy(数组1,数组2/字符串);
字符串的连接函数Strcat(数组1,数组2/字符串);
字符串的比较函数Strcmp(数组1/字符串1,数组2/字符串2)
初始化
全部初始化:Int arr[5] = {1,2,3,4,5}; Int a[2][3] = {{1,2,3},{4,5,6}};
部分初始化:Int arr[5] = {1,2,3}; Int a[3][4] = {{1,2,3},{1},{1,2}};
函数
自定义函数
存储类型 数据类型 函数名(形式参数列表)
{
函数体;
}
返回值的数据类型(void)(数据类型省略不写,默认是int类型)
若没有返回值,void;返回值也可以省略,如果省略,默认int类型(返回有且只能有一个)
如果函数没有写在main函数之前,就需要声明;
声明:将函数头部直接复制粘贴至main函数之前,然后加上分号
声明的作用:帮助编译器做语法检查
指针
指针是一种数据类型,它是一种保存地址的数据类型
一级指针: Int * p; 指针的数据类型:int *
二级指针: Int * *pp;保存一级指针的地址
二级指针的数据类型:int **;
指针和一维数组的关系
注意:!!在使用指针变量的移动时:一定要注意:指针此时指向了哪里
指针二维数组的关系
数组指针指向数组的指针(保存数组的地址)
Int (*p)[3];
数组指针一般不去操作一维数组。因为p+1,移动一个数组,就会越界,因此数组指针,一般用数组指针去操作二维数组!
指针数组 元素为指针的数组
Int * arr[3];
指针的赋值相当于改变指针的指向(指针赋值时要注意 指针指向的数据类型必须相同)
在所有的32os操作系统中,所有的指针都占4个字节 64位中站8个字节
空指针:在所有的32os操作系统中,所有的指针都占4个字节
野指针:野指针:不知道指向哪里的指针局部变量,没有初始化,随机值
局部指针变量,如果没有初始化,就是野指针
指针指向的数据类型,去掉的一个*和变量名,
指针的数据类型,去掉变量名就是数据类型。