实验11——指针的基础应用
1、本次课学习到的知识点:
(1)通过示例"密码开锁"引入指针的概念和主要知识点,分析了密码开锁的过程来说明变量、内存单元和地址之间的关系,从而引入指针的基本概念,接着介绍了指针的基本运算以及指针变量的初始化。
(2)通过例子"角色互换"引入指针作为函数参数的用途和用法,区分按值调用和引用调用,分析了3个swap()函数进行对比,最后通过给定的年和天数计算是某年某月某日的实例学习了如何使用指针作为函数参数返回多个值,解决了以前一个函数最多只能return一个值的问题。
(3)通过示例"冒泡排序"引入数组名作为函数参数,重点介绍指针、数组和地址之间的关系,通过例子说明了指针和数组可以实现相同的操作。引出上节课学习的选择排序进行了对比。
2、实验过程中遇到的问题及解决方法:
学习了指针,敲代码的时候发现运行错误,才发现自己代码没有事先声明函数,程序也没有敲完。多亏老师的解答
3、实验心得体会及本章学习总结:
又开始了新一章的学习,指针的出现方便了我们更好的定位。c语言我会继续努力
4、几个问题的思考与回答:
(1)两个相同类型的指针变量能不能相加?为什么
两个指针相加没有意义,什么都得不到。
(2)在使用scanf()函数时,输入参数列表需要使用取地址操作符&,但当参数为字符数组名时并没有使用,为什么?如果在字符数组名前加上取地址操作符&,会发生什么?
对于字符串数组活着字符串指针变量,由数组名和指针变量本身就是地址,因此使用scanf()函数时,不需要在它们前面加上“&”操作符。没变化。
(3)C语言不允许用赋值表达式直接对数组赋值,为什么?
因为结构的内存大小是固定的,但数组不是。所以没必要数组赋值,因为如果语法支持的话,还有很多麻烦事要解决。