Please enable JavaScript.
Coggle requires JavaScript to display documents.
多文件方式 - Coggle Diagram
多文件方式
容易混淆的声明
const关键字
const是C语言的关键字,是用来修饰只读的(read only)
const关键字修饰变量,变量名变为只读的,不能通过变量名修改变量的值
指针常量和常量指针
指针常量
指针是常量
可以通过指针常量修改指向空间的数据,但是不能通过指针名修改指针指向。
常量指针
指针指向常量
特性 : 可以通过指针改变指向,但是不同通过指针修改指向空间的数据。
指针函数和函数指针
指针函数:是一个函数,函数的返回值为指针的函数就是指针函数。
-
-
函数指针数组: 是一个数组,数组中的每一个成员都是函数指针
arr是一个数组,数组中有4个成员,每一个成员都是int(*)(int,int)的函数指针
-
指针数组和数组指针
命令行参数
int main(int argc, char *argv[ ])
-
-
数组指针
就是一个指针,该指针指向特定的数组。(也就是说数组指针是专门用来和数组产生关系的指针)。p是一个数组指针,该指针指向一行有5个成员,每个成员为int类型的数组
-
-
-
C语言的作用域
全局变量和局部变量
全局变量
全局变量是定义在所有函数之外的,一般来说是定义在程序开头的位置(包含头文件之下的位置)
-
-
注意
全局变量和局部变量可以同名,如果出现了同名的情况,那么在执行该函数的时候优先使用局部变量,因为在函数内局部变量可以把同名的全局变量屏蔽掉
区别
定义时的区别
当定义局部变量时,系统不能帮助初始化,局部变量存储的是垃圾值
当定义全局变量时,系统会帮助初始化,全局变量存储的是0
存储空间的区别
局部变量 : 存储在栈区中,只有局部变量所在函数被调用的时候,系统才会给局部变量分配相应的存储单元
全局变量 : 存储在全局静态区,当程序运行时就被定义了,当程序结束的时候才会被释放
-
extern和static关键字
static
tatic是C语言关键字,是用来修饰静态的(内部的)
-
注意 : 为了使全局变量可以安全的使用,请在定义全局变量的时候使用static关键字修饰
总结
如果本文件内的函数或者变量想要让别的文件使用,可以加extern关键字修饰为外部
如果本文件内的函数或者变量不想让别的文件使用,可以加static关键字修饰为静态
extern
extern修改变量
-
-
当编译器编译时,如果碰到了extern关键字那么会从别的文件中找相关的定义
说明该函数或者该变量在别的文件中已经定义了,在当前文件中仅仅是一个引用
extern修饰函数
-
如果自己写的函数只想在本文件内使用,不想被别的文件使用,需要使用static关键字修饰
-
typedef是C语言的关键字,可以定义数据类型或者给已有的数据类型起别名。
-
-