导图社区 C语言思维导图
C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。
编辑于2021-06-29 17:49:05C语言
数据
数据类型
整型类型(signed & unsigned)
char (字符型)
1个字节(32 && 64)
有符号范围:-2^7 ~ 2^7-1 (-128 - 127)
无符号范围:0 ~ 2^8-1(0 - 255)
short (短整型)
2个字节(32 && 64)
有符号范围:-2^15 ~ 2^15-1 (-32768 - 32767)
无符号范围:0 ~ 2^16-1 (0 ~ 65535)
int (整型)
4个字节(32 && 64)
有符号范围:-2^31 ~ 2^31-1
无符号范围:0 ~ 2^32-1
longlong (更长的整型)
8个字节(32 && 64)
有符号范围:-2^63~ 2^63-1
无符号范围:0 ~ 2^64-1(0 - 255)
long (长整型)*****
32位:
4个字节
64位:
8个字节
有符号范围:-2^31 ~ 2^31-1
无符号范围:0 ~ 2^32-1(0 - 255)
浮点类型
float (单精度浮点型)
4个字节(32 && 64)
double (双精度浮点型)
8个字节(32 && 64)
int * (指针类型)*****
32位:
4个字节
64位:
8个字节
bool (布尔类型)
空类型 (void)
做参数:
无参的时候,可以用void ( 也可以省略 )
做返回值:
无返回值的时候,用void
小心使用void指针类型 : *****
不能对void指针进行算法运算 (进行算法运算,必须确定类型)
void*做参数:
表示可以传任意类型的指针
指针类型:
char * , int *,void * 等
函数
函数的定义和声明:
声明:函数使用一般先在头文件中声明再使用,声明是告诉编译器有一个函数叫什么,返回类型和参数是什么
定义:定义是函数的具体实现,交代函数的功能实现
函数的参数:
实参:真实传给函数的参数叫实参
形参:形参在函数调用的时候才实例化(并分配空间),调用完成后自动销毁;形参只是实参的一份临时拷贝
函数的调用:
传值和传址调用的区别:
相同点:实参和形参拥有不同的地址空间
不同点:
传值调用:对形参的修改不会影响实参
传址调用:形参的值就是实参的地址,所以对形参的修改是可以改变实参的
传值和传址调用
数组
一维数组:
数组名 arr
*arr 表示:数组首元素地址
sizeof( arr ) 或者 &arr:表示整个数组
二维数组:
内存中存储:像一维数组一样
二维数组的定义:可以省略第一维的定义,但不能省略第二维的定义 (eg;int [ ][ 3 ])
指针数组:
含义:是一个数组,存放指针的数组
eg : int * arr[ ](整型指针数组 ) & char * arr[ ](字符型指针数组 )
函数指针数组:
eg:int (* p[ 5])( )
表示:一个数组存放的是:函数指针
p 先与 [ ]结合,表示指针数组([ ] 的优先级大于 *)
int ( * ) ( ):表示一个函数指针(数组的内容)
应用:转移表
指针数组 & 数组指针
指针数组
含义:是一个数组,存放指针的数组
eg : int * arr[ ](整型指针数组 ) & char * arr[ ](字符型指针数组 )
数组指针
含义:是一个指向数组的指针
eg : int (* arr)[ ](整型数组指针 ) & char ( * arr)[ ](字符型数组指针)
int *arr[10] = {0}; // 数组 int (*arr1)[10] = {0}; // 指针 printf("arr : %d\n",sizeof(arr)); // 结果:arr :40 ( 因为是数组:一个指针的大小是4,4*10 = 40 ) printf("arr1 : %d\n",sizeof(arr1));// 结果:arr1 :4 (因为是指针)