5.1,5.2 第八章预习

1. 数组优点:

(1)C语言数组下标在一个很低的层次上处理,但在程序运行时无法知道数组大小及 其下标是否有效。

(2)数组出现在表达式时和指向数组中第一个指针等价(指针比使用数组下标快2倍)。

数组作为参数传递给函数等价于指向数组中第一个元素的指针。数组作为参数传递给函 数时采用:值传递与地址传递。

2. 字符数组的收入输出

   方法:逐个字符输入输出。用格式符%c”输入或输出一个字符;将整个字符串一次输入或输出。用“%s”格式符,意思是对字符串的输入输出。

3. 字符串处理函数:

(1)puts:将一个字符串(以′\0′结束的字符序列)输出到终端。形式:puts (字符数   

)

(2)gets:从终端输入一个字符串到字符数组,并且得到一个函数值。形式:gets(符数组)

(3)strcat:连接两个字符数组中的字符串,把字符串2接到字符串1的后面,结果放在字符数组1中,函数调用后得到一个函数值——字符数组1的地址。形式:strcat(字符数组1,字符数组2

(4)strcpy:是将字符串2复制到字符数组1中去。形式strcpy(字符数组1,字符串2)

(5)strcmp:比较字符串1和字符串2。形式:strcmp(字符串1,字符串2)

(6)strlen:测试字符串长度的函数。形式: strlen (字符数组)

(7)strlwr:将字符串中大写字母换成小写字母。形式:strlwr (字符串)

(8)strupr:将字符串中小写字母换成大写字母。形式:strupr (字符串)

4. strcpy注意点:(1)字符数组1必须定义得足够大,以便容纳被复制的字符串。字符数组 1的长度不应小于字符串2的长度。

2)字符数组1”必须写成数组名形式(str1),“字符串2”可以是字符数组名,也可以是一个字符串常量。

3)复制时连同字符串后面的′\0′一起复制到字符数组1中。

4)可以用strncpy函数将字符串2中前面若干个字符复制到字符数组1中去。

5)不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。用strcpy函数只能将一个字符串复制到另一个字符数组中去。用赋值语句只能将一个字符赋给一个字符型变量或字符数组元素。

5. 数组常见问题:a.数组下标总是从0开始的吗?

 是的,对数组a[MAX]来说,其第一个和最后一个元素分别是a[0]a[MAX-1]

注:a[MAx]是一个有效的地址,但该地址中的值并不是数组a的一个元素。

b.可以使用数组后第一个元素的地址吗?

可以使用,但不可以查看该地址中的值。

c.为何要小心对待位于数组后的那些元素的地址?

在一些计算机上,地址由两部分组成:1.一个指向某块内存的起始点的指针;2.相对于这块内存的起始点的地址偏移量。这种地址结构被称为段地址结构,子程序的调用 就是通过在栈指针上加上一个地址偏移量来实现。

6. 实参与形参区别:

形式参数:定义函数时函数名后面括号中的变量名

实际参数:调用函数时函数名后面括号中的表达式

7.值传递和地址传递:

值传递方式:函数调用时,为形参分配单元,并将实参的值复制到形参中;调用结束,形

参单元被释放,实参单元仍保留并维持原值。

特点:形参与实参占用不同的内存单元;单向传递。

地址传递方式:函数调用时,将数据的存储地址作为参数传递给形参。

特点:形参与实参占用同样的存储单元;“双向”传递;

实参和形参必须是地址常量或变量。

8.函数调用的形式:(1)作为函数语句调用。函数一般无返回值;

2)作为函数表达式调用;

3)作为函数参数调用。

9. 结构体数组做函数参数:包含两类情况:结构体数组元素作为实参和结构体数组名作为。实参。两类情况仍然服从数据的单向值传递原则,但前者传给形参的是某些变量的值,后者传给形参的是结构体数组的首地址。

10.什么是回调函数?

  回调函数是一个通过函数指针调用的函数。若把函数指针传递给另一个函数,当这个函数指针被用来调用其所指向的函数时,即为回调函数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值