C语言:期末函数基础概念集中复习

正确的函数声明形式:

 double fun(int x, int y)

正确的函数定义形式:

  double fun(int x, int y)

在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是static

其中应用static去算阶乘(在我以往博客有过概述)可以很好理解其含义。

凡是函数中未指定存储类别的局部变量,其隐含的存储类别为自动(auto)

以下几种正确说法(虽然在则之前都不怎么认为对):

  1. 在不同函数中可以使用同名字的变量
  2. 形式参数是局部变量
  3. 在函数内定义的变量只在本函数范围内有效
  4. 在函数内的复合语句中定义的变量在本函数范围内是无效的。只是在该复合语句有效。

值得注意的是:
局部变量如果没有指定初值,则其初值不为0。
用户可以重新定义标准库函数,若如此,该函数将失去原有含义

易错点:
以下函数调用语句含有的实参个数为2个;
func((exp1, exp2), (exp3, exp4, exp5));
因为被括号括起来算一个实参。

函数值的类型与返回值类型不一致,以函数值类型为准
return后边的值能为表达式

C语言规定,简单变量作为实参时,它和对应形参之间的数据传递方式是单向值传递

典型错误:
main()

{ int G=5, k;

void ptr_char( );

k=ptr_char(G);

}

**错误点:**函数说明和函数调用语句之间有矛盾

其次:
函数的定义不可以嵌套,但函数的调用可以嵌套

使用一维数组名作为函数实参时,必须在主调函数中说明此数组的大小

调用一个函数,且此函数中没有return 语句,该函数没有返回值。

C语言规定,函数返回值的类型是由在定义该函数时所指定的函数类型所决定

用数据组名作为函数调用的实参,则传递给形参的是数组的首地址

C语言中:实参和与其对应的形参各占用独立的存储单元

目前弄清函数基础概念有助于往后指针的学习,同时也是不错的期末复习。

猜你喜欢

转载自blog.csdn.net/yooppa/article/details/112254161