1. C语言的库函数是可以直接调用的,不需要提前声明,因为系统帮我们声明了。例如 printf函数
2. 在程序中编写函数时,要先对函数进行声明,再对函数进行定义。函数的声明时让编译器知道函数的名称、参数、返回值类型等信息。函数的定义让编译器知道函数的功能。
3. 如果将函数的定义放在调用函数之前,则不需要进行函数的声明,此时函数的定义就包含了函数的声明。
4.函数返回语句 return语句后面的括号是可以省略的,例如return 0 和return(0)是相同的。
5. 如果函数值得类型和return语句中表达式的值不一致,则以函数返回值得类型为准,数值型数据可以自动进行类转换,即函数定义的返回值类型决定最终返回值的类型。
6.当数值作为函数的实参时,只传递数组的地址,而不是将整个数组赋值到函数中,当用数组名作为实参调用函数时,指向该数组的第一个元素的指针就被传递到函数中。
7.C语言中没有任何下标的数组名其实就是一个指向该数组第一个元素的指针。例如 Int Count[10]是一个整型数组,其中的代码没有下标的数组名Count与指向第一个元素的指针*Count 是相同的。
8.在程序运行时,有时需要将必要的参数传递给主函数,主函数main的形式参数如下:main(int argc, char* argv[])。两个特殊的内部形参argc和argv是用来接收命令行实参的,这是只有主函数main具有的参数。argc参数保存命令行的参数个数,是整型变量。这个参数的值至少是1,因为至少程序名是第一个参数。argv参数是一个指向字符指针数组的指针,这个数组中的每个元素都是指向命令行实参,所有命令行实参都是字符串,任何数组都必须由程序转变为适当的格式。
9.函数的调用有三种方式:A. 函数语句的调用,最常用,例如:Display(); B. 函数表达式的调用,例如:iResult = iNum3*AddTwoNum(3,5);C. 函数参数调用,例如:iResult = AddTwoNum(10, AddTwoNum(3,5));
10.C语言不支持嵌套定义,但是支持嵌套调用。
11.C语言的函数都支持递归,也就是说,每个函数都可以直接或者间接地调用自己。所谓间接调用,就是在递归,函数调用的下层 函数中再调用自己。
12.递归之所以能够实现,是因为函数的每个执行过程在栈中都有自己的形参和局部变量的副本,这些副本和该函数的其他执行过程不发生关系。
13.内部函数:即静态函数,函数只能在这个函数所在的源文件中被使用。内部函数要在函数返回值前面加一个static
14.外部函数:可以被其他源文件调用的函数。外部函数要在函数返回值前面加一个extern。C语言在不指明函数时内部函数还是外部函数时默认是外部函数。
15.在一个函数内部定义的变量叫做局部变量。同时需要注意的是,在语句块(如if语句块)内声明的变量仅在该语句块内部起作用,当然也包括嵌套在其中的子语句块。在C语言中 位于不同作用域的变量可以使用相同的标识符,即变量可以同名,如果内层作用域中定义的变量和已经声明的某个外层作用域中的变量有相同的名称,在内层中使用这个变量, 此时内层作用域中的变量会屏蔽外层作用域中的该变量,这就称为局部变量的屏蔽作用。
16.全局变量:可以在程序中的任何位置进行访问的变量。全局变量不属于某个函数,而属于整个源文件,但是如果外部文件要进行使用,则要用extern关键字进行引用修饰。
17.常用的关于数学的常用函数。
abs -------求整数的绝对值。
labs -------求长整数的绝对值。
fabs -------求浮点数的绝对值。
sin,cos,tan --------三角函数
isalpha -------检测字母,如果参数是字母表中的字母(大写或小写),则返回非零,但是使用前需要包含头文件 ctype.h
isdigit ------检测数字,如果参数是数字的话返回非零值,否则返回零。但是使用前需要包含头文件 ctype.h
isalnum ------检测字母或者数字,如果参数是字母表中的一个字母或者是一个数字,则返回非零值,否则返回零。但是使用前需要包含头文件 ctype.h