- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《C语言程序设计》中的指针形参和函数体中数组实参问题的教学研究.pdf
C
C
《CC语言程序设计》中的指针形参和函数体中数组实参问题的教学研究
山东理工大学计算机学院 董敬富 淄博市劳动局职业技能鉴定中心 董京亮
摘要:指针是C 语言中一个重要的概念,也是C语言中一个重要的特色。正确而灵活地
运用指针可以提高程序的运行速度和降低程序的存储空间。在构造链表、树、图等复杂的数
据结构,方便地使用字符串、数组,从被调函数得到多个值,甚至可以动态地分配内存等普通程
序所不能实现的功能,也可以有效地表示和实现复杂的数据结构。同时指针又是一个十分难
以理解的概念,特别是指针形参和数组实参传递参数时,由于分不清参数的性质,错误地使
用指针将使程序中隐藏一些不容易发现且难以排除的错误。本文以浅显的论述,讲述指针形
参和函数体中数组实参问题,以期达到抛砖引玉的目的。
关键词:地址 指针 函数 形式参数 实在参数
中图分类号:O174 文献标识码: A 文章编号:
一、指针概念的理解
计算机的内存是以字节为单位的一片连续的存储空间,为了有效的管理和使用每一个空
间,系统给每一个字节进行编号,这个编号就是该字节在内存的地址。指针是一个特殊的变
量,它存储的数值恰恰就是内存的这个编号,为了区别存放“编号”变量和“数值”变量,
就把“编号”变量形象的称为指针变量。这个问题不难理解,通常我们会讲上午1、2节在
9号教学楼211教室上C语言,这里的211就是一个教室的编号而已,我们确实把它作地址
用了。在你听到上述表述时,是不是在脑海中在判断哪是9号教学楼,哪个是211教室。这
时你的脑海中是否涌现出了一个无形的箭头指向了“9号教学楼211教室”呢?所以说指针
是地址的形象化称呼,并非在内存中真正有指针存在。而数值211则可表示重量长度等。int
x=1,*p;此时定义了一个变量x,内容为数值1,一个指针变量p,指向不定空间。在执行语句
p=x;后,变量x的地址送p;也就是说p指向了x。
二、函数概念的理解
函数是模块设计的重要思想,它是把程序中多次用到的程序段取出来给它取上一个名
字,在程序中用到该程序段时只要写上它的名字就可以了,这个名字表示“做什么”,至于
“怎么做”,则在定义函数时详细说明。函数名是这个程序段的首地址,是一个常量地址(指
针常量)。由于函数的多次调用,它对符合量的某一特征的参数都应该能够处理,这样说来
它使用的参数就不可能用一个具体的、实在的参数表示,只能用形式上代表着量的某一特征
的参数来表示,这种参数就是形式参数。实在参数则是调用函数时所处理的一个具体的,实
在的值。也就是说函数的形式参数重点强调的是“形式上代表着量的某一特征的参数”,就
像我们平时所说的“C 语言老师”,这个“老师”可以是张三也可以是李四,但是张三也好
李四也罢,必须符合能教授C 语言这一特征。而实在参数则强调的是函数处理时的具体的
值。上例所讲中的“C 语言老师”,在开始具体讲授C语言课时的哪个老师,是实在参数。
简单讲,在定义函数时的参数是形式参数,在调用函数时的参数是实在参数。
Intfun(inta,intb) a,b是形式参数,特征是整形数
{intc;
c=a+b;
returnc;
}
Main()
{intx,y,z;
Scanf(“%d%d”,x,y);
z=fun(x,y); x,y是实在参数,通过scanf函数输入的任何整形数都可以
printf(“%d”,z);
}
三、数组概念的理解
数组是C 语言最简单的一种构造类型,每个数组包含一组具有同一类型的变量,这些
变量在内存中占有连续的存储单元,使用相同的名字不同的下标来引用不同的单元。inta[10];
计算机在执行该语句后会分配10个连续空间,这10个空间有一个共同的名字叫a,这个a
是数组的首地址,是一个常量地址值。a+1 等于a[1]。若要访问哪一个空间,则分别用
a[0],a[1],a[2]…a[9],来表示。二维数组则可以理解为一维数组的每一个元素又是一维数组,
intarray[3][4] ; 共有3行,每行有4列的元素组成。在存储时则按行优先或列优先连续存储。
至于array+1 和array+1 是不同的。array+1 是从array算起,按int[4]类型的大小,向前移
您可能关注的文档
- “物理”流变考.pdf
- “玩”出不一样的数学“综合与实践”活动课.pdf
- “生态数学”数学教育的应然选择.pdf
- “生活”让数学课堂更精彩.pdf
- “电视崇高感”的美学价值.pdf
- “画数学”在小学分数教学中的妙用思路探索.pdf
- “疑”“探”交融,绽放思维之花——一道中考压轴题的解题教学.pdf
- “疑、探、导、练”的高中英语课堂教学实践探索——以“it”的用法为例.pdf
- “病”与“药”--解读巴金《第四病室》的一个维度.pdf
- “监护人”“公平分担损失”制度研究.pdf
- Unit 7 A Day to Remember 第2课时 Section A(2a-2e)(分层作业) 人教版七年级英语下册.docx
- Unit 7 A Day to Remember 第4课时 Section B(1a-1d)(分层作业) 人教版七年级英语下册.docx
- Unit 7 Animals单词导学课件 译林版2024英语三年级下册.pptx
- Unit 7 A Day to Remember 单元检测 人教版七年级英语下册.docx
- Unit 7 A Day to Remember 第1课时 Section A(1a-Pronunciation)(分层作业) 人教版七年级英语下册.docx
- 研究性学习课程设计.docx
- Unit 6 On the farm单词导学课件 译林版2024英语三年级下册.pptx
- Unit 6 Rain or Shine 单元检测 人教版七年级英语下册.docx
- Unit 6 Rain or Shine 第1课时 Section A(1a-Pronunciation)(分层作业) 人教版七年级英语下册.docx
- Unit 5 Here and Now 第1课时 Section A(1a-Pronunciation)(分层作业) 人教版七年级英语下册.docx
文档评论(0)