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

本文主要复习了C语言中的函数基础概念,包括函数声明和定义的正确形式,static关键字的作用,局部变量的存储类别和作用域。还强调了局部变量未初始化的默认值不是0,以及函数参数传递的单向值传递特性。此外,讨论了函数调用的常见错误,如括号导致的实参个数误解,函数返回值类型与实际返回值的匹配,以及数组名作为函数参数时传递的是首地址。最后指出,理解这些基础知识对于后续学习指针和期末复习至关重要。

正确的函数声明形式:

 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语言中:实参和与其对应的形参各占用独立的存储单元

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值