数组、字符串和函数的总结

1、字符串:位于双引号中的字符序列,以\0结束,所占字节比实际多一个。


2、字符常量可以赋给字符变量,字符串常量不可以赋给字符串变量。C语言中用字符数组来存放字符串。


3、字符数组:memset(a,\0,10);用来给数组清0的。需要加头文件#include<string.h>。


注意:定义数组时,应确保数组长度比字符串长度至少多1,未被使用的元素自动初始化为0。


4、\0代表ASCII码为0的字符(NUL)。为“空操作符”,用它作为字符串结束标志不会产生附加的操

作或增加有效字符,只起一个供辨别的标志。


5、字符数组的输入输出的两种方法:

(1)逐个字符输入输出(%c);(输出字符不包含‘\0’)


(2)整个字符串一次输入输出(%s)。(输出的是字符数组名)


6、scanf()格式化输入:接收字符串,不接收空格。输入字符串时,数组名前不加&。


7、gets()可以接收空格,以回车结束输入;getchar()输入回显;getch()不回显,而且可以接收‘\r’

,需要#include <conio.h>


8、puts()输出字符串函数程序开头用#include <string.h>;输出字符函数putchar()。


9、字符数组的一些方法


(1)统计字符串长度:strlen();(遇到‘\0’结束)。


(2)内存赋值函数:memset(字符数组名,要替换的内容,要替换的个数),根据要替换的个数,用膏药替换的内容,替换字符串数组的内容(清0)。


(3)字符串拷贝:strcpy(字符数组1,字符数组2);strcpy(字符数组名,字符常量)。


(4)字符串拷贝:strncpy(目标数组,原数组,个数);将指定个数的字符串拷贝到指定的数组中。

意:strncpy不检查目标字符串的大小,当目标字符串内存不足,会导致崩溃。


(5)字符串比较:strcmp(字符串1,字符串2)。(规则:讲两个字符串自左至右逐个字符比较,直到遇到

相同的字符或\0结束)。


比较的结果由函数值带回:

1>如果字符串1=字符串2,则函数值为0;

2>如果字符串1>字符串2,则函数值为一个正整数

3>如果字符串1<字符串2,则函数值为一个负整数


(6)字符串连接函数:strcat(字符数组1,字符数组2)。


(7)字符串转小写:strlwr(字符串)。


(8)字符串转大写:strupr(字符串)。


10、C语言函数:C语言是通过函数来实现模块化程序设计的。每个模块都有特定的功能,称为子程序。

数式C语言程序的基本单位。


11、主函数可以调用其他函数,其他函数也可以互相调用,其它函数不可以调用主函数。


12、程序使用函数的优点:

1)使用函数可以控制任务的规模

2)使用函数可以控制变量的作用范围

3)使用函数,程序的开发可以由多人分工协作

4)使用函数,可以重新利用已有的、调试好的、成熟的程序模块

5)函数模块相对独立,功能单一,可混合编写也可独立编写调试


12、函数的定义形式


(1)无参函数 :函数类型 函数名(){可执行语句部分}


(2)有参函数 : 函数类型 函数名(形参列表){可执行语句部分}


(3)空函数 :函数类型 函数名(){   }


13、命名规范

(1)首字母必须大写.

(2)函数名用大小写字母组合

(3)最好用下划线进行间隔


14、自定义头文件(*.h)。


头文件中一般放一些重复使用的代码,例如函数声明,变量声明,常数定义,宏的定义等等。


15、函数声明:又称为函数原型。


格式为:函数类型 函数名(参数类型1,参数类型2,...,参数类型n)。


返回值:return语句,函数中能出现多个return语句,但是每次只能有一个return执行,只有一个返回

值。

16、变量的两种存储方式:静态存储方式(系统固定分配存储空间)和动态存储方式(根据需要进行动态

分配存储空间)。


17、内存区域分配:


代码段:可执行代码、字符串常量

数据段:已初始化全局变量、已初始化全局静态变量、局部静态变量、常量数据

BSS:未初始化全局变量,为初始化全局静态变量

栈:局部变量、函数参数

堆:动态内存分配


18、栈和堆的区别:

(1)申请空间方式不同:栈是系统自动分配;堆是程序员自己申请的。

(2)堆是手动释放内存空间,栈是自动释放内存空间。


19、函数之外的是全局变量,函数之内的变量叫做局部变量。


20、静态变量随函数的定义而定义,如果已经存在就延用,但并不随函数的结束而消亡。若未赋以初值

,则由系统自动赋以0值。静态全局变量:静态存储方式。


21、函数嵌套的调用:即调用一个函数的过程中,又可以调用另一个函数。


22、函数递归调用:在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的递归调

用。

每个子问题必须比原来问题的规模更小,如果能够迅速减小更好必须有一个明确的结束递归的条件。


23、const修饰函数参数:表示函数内部不能对函数的参数进行修改。


24、数组名作为函数参数:向形参传递的是数组首元素的地址。


用数组元素做实参时向形参变量传递的是数组元素的值。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章