:
①引用头文件 #include <windows.h> Sleep( ); 单位是毫秒,需要间隔时间打印 时,可以引用。
②system("cls"); 可以清理输出屏幕上的信息
③引用头文件 #include <string.h> int ret = strmp("abc","abc") 比较字符串,一个一个字符去比较,出现不一样的字符,此时比较的这两个字符的大小,它们的大小就是字符串的大小
:
①int sz=sizeof(arr)/sizeof(arr[0]) 用于计算数组元素个数
②while( scanf(“%d”,&a) != EOF ) 可用以循环,然后要输入多组数据,按crtl+z 3次结束输入。
return语句
在函数的设计中,函数中经常会出现 return 语句,这里讲一下 return 语句使用的注意项。
①return 后边可以是一个数值,也可以是一个表达式,如果是表达式则先执行表达式,再返回表达式的结果。
②return 后边也可以什么都没有,直接写 return ;这种写法适合函数返回类型是 void 的情况。
③return 返回的值和函数返回类型不一致,系统会自动将返回的值隐式转换为函数的返回类型。 ④return 语句执行后,函数就彻底返回,后边的代码不再执行。
⑤如果函数中存在 if 等分支的语句,则要保证每种情况下都有 return 返回,否则会出现编译错误。
数组传参的几个重点知识:
①函数的形式参数要和函数的实参个数匹配
②函数的实参是数组,形参也是可以写成数组形式的
③形参如果是一维数组,数组大小可以省略不写
④形参如果是二维数组,行可以省略,但是列不能省略
⑤数组传参,形参是不会创建新的数组的
⑥形参操作的数组和实参的数组是同一个数组
二分法(折半查找)在有序的数据中查找某个数
int mid =(left+right) / 2 或 int mid =left + (right-left) / 2 (当数据非常多时使用这种算法比较好)
找出数组中的中间元素(10个) :
int left=0;
sz=sizeof( arr ) / sizeof( arr[0] ) ;
int right =sz-1;
int mid=( arr[0] + arr[9] ) / 2 ;
函数的链式访问 是将一个函数的返回值作为另外一个函数的参数,像链条一样将函数窜起来就是函数的链式访问
printf函数返回的是打印在屏幕上的字符个数
printf(%d,printf(%d,printf(%d,43)) 43有两个字符,返回值为 2 ,2只有一个字符,返回值为1 所以打印结果:4321
函数定义 多文件书写的好处:逻辑清晰,方便多人协同 ,隐藏代码。
创建头文件名格式 : 函数名.h 再创建一个源文件: 函数名.c
在另一个文件里引用该函数声明格式为 # include "add.h" 函数名+.h
static 和 extern
static 和 extern 都是 C 语言中的关键字
static 是静态的的意思,可以用来:修饰局部变量,修饰全局变量,修饰函数
extern 是用来声明外部符号的。(声明来自另一个文件的变量) extern 函数类型 函数名;
static 修饰局部变量改变了变量的生命周期,生命周期改变的本质是改变了变量的存储类型,本来一个局部变量是存储在内存的栈区的,但是被 static 修饰后存储到了静态区。存储在静态区的变量和全局变量是一样的生命周期就和程序的生命周期一样了,只有程序结束,变量才销毁,内存才回收。但是作用域不变的。
一个全局变量被 static 修饰(修饰函数也一样),使得这个全局变量只能在本源文件内使用,不能在其他源文件内使用。
本质原因是全局变量默认是具有外部链接属性的,在外部的文件中想使用,只要适当的声明就可以使用;但是全局变量披 static 修饰之后,外部抵接属性就成了内部纷接属性,只能在自己所在的源文件内部使用了,其他源文件,即使声明了,也是无法正常使用的。
使用建议:如果一个全局变量,只想在所在的源文件内部使用,不想被其他文件发现,就可以使用 static 修饰。