明解c语言:6-2的函数设计

首先看看今天学到了什么

1.两个值的交换顺序,要想交换a和b的值,必须使用一个额外的变量,并且要注意元素交换次数。(P130,135,170)

2.返回正整数倒转后的值。(忘打了int tmp=0) 

3.字符常量是int型的。显示字符是char型的。

4.函数的定义有函数头(1.返回类型2.函数名3.形参声明)还有函数体(注意声明的变量不能和形参同名,但实参可以和形参同名)

5调用函数时需要用函数调用表达式且有()其中是实参(因为传递的只是参数的值因此使用的实参既可以是变量也可以是常量),对函数调用表达式进行判定的时候,会得到该函数返回的返回值,但也有返回值类型是void的,此时函数只是用来显示的,因此没有需要返回的结果。6

6.将函数返回的值作为参数传递给函数(套娃)不过不知道这个报错为什么说返回值被忽略

( 在程序中,函数可能会返回一个值(除了返回类型是void的函数),但是有时候程序员调用函数时却没有将这个返回值保存下来和使用它,这种情况就叫做“返回值被忽略”)

7.当然也可以在自己创建的函数中调用其他函数(求四个整数中的最大值)

8.输入double类型的scanf时又忘记了%lf

9.函数间的参数的传递是通过值传递的,其实形参只是实参的副本。

10.不含形参的函数,加以说明小括号void,调用方也没必要赋予实参()是空的,一般intmain(void)但也存在包含形参的main函数

 (显示型的函数没必须返回值,且下方调用的时候直接printf)

在函数外声明的变量标识符,其名称从声明位置开始到该程序的结尾都是通用的,这样的作用域叫文件作用域。

当然你也可以这么写,不含形参的函数,但由于在全局声明,所以可以用。

函数原型声明:明确记述了函数的返回类型,以及形参的类型和个数的说明等的声明称function prototype declaration(注意声明要以分号结尾)

如果函数有其他要求那么函数定义和说明就必须都得修改,这也就是为什么一般把被调用的函数放在调用函数之前。

显然上述top函数的通用性较差,所从通用性角度至少满足以下两个条件。

1.可以处理任意数组,不仅仅是tensu数组。2.可以处理不同元素个数的数组

下面来到了数组的传递

 P170的那个练习,都const还怎么进行倒序呢

这个题目的正确答案:(有点牛) 1.首先声明数组得有长度。2.这个for循环写的可以好好学习

下面介绍 哨兵查找法:

这是个错误的,27行NUMBER旁边缺个),所以一直都是第2号元素,这是因为search的返回值大于0,所以判断值为1,故idx为1(这里其实因为>=的优先级高于赋值运算符=)

有几个细节的地方:1.这次是查找,所以需要返回值,因此需int型  2.while语句的控制表达式为1,此为无限循环(当控制表达式为1时,意味着控制表达式的值为真。因为在C语言中,非零的值被视为真,而1正好是一个非零值,所以while(1)可以用作一个无限循环的控制表达式)除非有break或者其他语句例如return 语句可以跳出循环. (上面的while循环也可以用for写)

练习6-11

要想把整个数组显示出来目前只会for循环遍历。

习题6-12:

三维数组的书写:(声明[]表示元素,索引的时候[]-1)

多维数组的传递:第一个❌,第二个✔

须注意的是:接收多维数组,可以省略相当于开头下标的n维的元素个数,但是(n-1)维以下的元素个数必须为常量。 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值