admin 管理员组

文章数量: 1086019


2024年12月29日发(作者:openstack支持的计算类型)

Popular Science 科学大众・科学教育 2010年第3期 

浅析c语言中指针作函数参数 

丁春芳 

(邢台学院信息科学与技术系,河北邢台054001) 

摘要:本文主要从理论上对指针和函数的结合点~指针作函数参数应用技巧进行探讨。 

关键词:C语言;指针;函数参数 

中图分类号:tp311 文献标识码:B 文章编号:1006—3315(2010)3—156—001 

在c语言中,指针可以和函数结合作函数的参数,并且指针 for(i=0;i<10;i++) 

作函数的参数还解决了普通变量作函数参数时形参不能改变主

调函数中变量值的问题。在此本人结合教学中的体会以及参数 

的匹配原则、参数的数据传递规律等特点,分析C语言指针作函 

数参数的应用。 

1、实参和形参的联系 

1.1参数的匹配原则 

在c语言中,对应形参与实参的类型应相同或赋值兼容。一 值实现了交换,

般而言,实参为整型数据,形参就为整型变量或实型变量;形参 调用结束,

为实型指针变量,实参为实型指针或实型数组名。 

1.2参数传递 

在c语言中,实参向形参的数据传递采用“单向值传递”,即 

只能由实参传值给形参,而不能由形参传值给实参。 

2、指针与函数参数 

2.1指针作函数形参 

指针变量作函数的形参时,因实参和形参类型要匹配,所以 内存单元中的值,

实参只能为表示地址的量,并且其类型要与形参一致,又因实参 

必须有确切值,所以实参可以是①变量的地址。变量的地址代表 l

变量存储单元的编号,为常量。②指针。指针变量已赋值。③数 2.

组名。数组名是数组的起始地址,是一个地址常量。 

指针变量作形参,指针变量的地址或数组名做实参,函数调 形参需接受实参传递来的值,所以形参必须为表示地址的变量。

用时,形参接收实参传递来的值,此时形参和实参中存储的是同 这样变量的地址及数组名均为常量被淘汰,只有指针变量和数 

存储单元的地址,它们共同指向同一存储单元,在函数执行过 组形式可以作函数的形参。

程中若使形参指针变量所指向的变量的值发生变化,函数调用 

结束后,变量值的变化被保留。此处指针变量所指向的变量可以 

是主调函数中的变量,实参存储的依然是变量的地址,实参值未 

发生改变,不违背参数的单向传递规律,改变的是实参存储单元 

中的内容。所以通过指针做形参可以改变其指向变量的值,这是 

般变量作形参无法实现的。 

void swapl(int x,int Y) 

f 

int t: 

t=x;x=y;y=I; 

void sort(int P,int n) 

f 

int q,t; 

q:p+n-1; 

while(p<q) 

{t: p; p= q; q=t;p++;q一;) 

1void main() 

f 

int i,a[1O]={3,7,9,l1,0,6,7,5,4,2},aa=5,bb=8; 

swapl(aa,bb); 

pfin ̄’’After calling swap1:a=%db=%dkn",a,b); 

son 1 o): 

作者简介:丁春芳(1 972一):女,硕士。从事计算机教学与研究。 

156— 

printf(”%d\I1”,a[i1); 

l 

函数调用时,普通变量作为函数实参和形参,变量aa,bb的 

值不变,没有实现交换,而在sort函数执行完后,数组a的元素 

值进行了逆序排列。在调用swap函数时,为形参开辟存储单元, 

形参和实参分别占用不同的存储单元,在swap1函数内,x、Y的 

因参数的传递只能从实参给形参传值,所以函数 

不能实现aa,bb值的交换;而在调用sotr函数时,实 

参a把数组的首地址传递给形参P,这样P指向元素af0】。实参 

l0传递给形参n。语句q=p+n一1是让指针q指向数组元素a[91。 

p就是a【O], q就是a[91,交换 p和 q的值,就是交换元素a[O1 

和a【9]的值。接着p++指向下元素,q一指向前一数组元素,再 

交换它们的值,依次进行下去直到p>=q结束,逆序形成。通过改 

变指针P和q的指向,其实质是通过间接访问运算改变其对应 

实现数组元素原有值的改变。当调用结束后, 

系统释放形参变量P和n,并没有将其值传递给对应的实参a和 

O。实际上a和10均为常量,不能接收数据也不会被改变。 

2指针作函数实参 

指针作函数实参时,函数的形参也要为表示地址的量,又因 

 

 

void inv(int x【],int n) 

fint temp,ij,m:(n一1)/2; 

fnrO-=O;i<=m;i++) 

U=n—i一1; 

(temp:xfi】=x[i]=xⅡ];xU】=temp;) 

l 

void main() 

f I¨t i,a【lO]={3,7,9,1 1,0,6,7,5,4,2), p=a; 

inv(p,1O); 

for(i=O;i<1Off++) 

printf(”%d ”,a[iD; 

l 

指针变量作实参,在inv函数中形参为数组形式,函数体内 

使用数组元素x【i]和xD]。形参数组和主调函数中的数组共同占 

用同一段存储单元,所以在子函数中数组元素的值发生改变,回 

到主函数时变化的值被保留。在此可以把x看作是数组的数组 

名,而事实上函数首部中定义的形参数组x并非数组,而是指针 

变量x。对函数做如下改变: 

void inv(int)【[】,int n) 

{int P,m,temp, i, j; 

m=(I1一1)/2; 

i=xO=x+n一1;p:x+m; 

for(x<q) (下转第35页) 

总第612期 教海探航 

信息技术与生物学科整合的初步探讨 

钱兆华 

(江都市宜陵中学,江苏省225231) 

摘要:新课程改革的主要目标是改变传统的以教师为中心的教学结构,创建既能发挥教师主导,又能充分体现学生主体作用 

的新型教学结构。要实现此新型的教学模式的建构,离不开现代信息技术与各学科的整合。 

关键词:信息技术; 生物学科;整合 

中图分类号:G633.91 

1、信息技术与生物学科整合的内涵 

文献标识码:A 文章编号:1 006-331 5(201 0)3-035—001 

从教育技术的发展来看,信息技术与课程整合的内涵:是要 

求在先进的教育思想、理论的指导下,把计算机及网络为核心的 

信息技术作为促进学生自主学习的认知工具与情感激励工具, 

并将这些工具全面地应用到各学科教学过程中,使各种教学资 

源、各个教学要素和教学环节,经过整理、组合,相互融合,在整 

体优化的基础上产生聚集效应,从而促进传统教学方式的根本 

方法。 

3.1_4通过整合,发展学生创造性思维能力 

变革。 

生物学知识,既有空间结构和运动状况的描述,又有数量分 

2、信息技术与生物学科整合的优势 

析,逻辑推理,概念的界定等,因此在教学时,要详细安排好教学 

2.1现代信息技术能生动逼真地创设生物模型和情景。 

2.2现代信息技术能优化学习环境,实现教师为主导、学生 

结构,要充分考虑到教师、学生、教学内容和媒体几个教学要素 

要与其 

为主体的新型教学模式。具体来说就是:①能体现教学中学生学 

之间的有机结合。不要将信息技术停留在应用的水平上,

习的主体性和教学的互动性;②能激发学生学习兴趣促进学习 它的教学要素“融”在一起。 

3.2利用信息化学习环境和资源,培养学生自主发现、探究学习 

动机;③有利于知识的获取和保持;④有利于培养学生的创新精 

的能力。 

神和促进其信息能力的发展。 

根据建构主义理论,结合信息技术与课程整合的思想,教师 

2-3现代信息技术给生物教学提供了丰富的素材,有助于教 

在教学过程中,要把信息技术作为学生主动学习、协作式探索的 

师讲清抽象的知识。 

认知工具,教师则是教学过程中的组织者、指导者、意义建构的 

2.4现代信息技术有利于创造和谐、高效的课堂气氛。 

3、信息技术与生物学科整合的基本策略 

帮助者、促进者。 

3.1利用信息化学习环境和资源创设情境,培养学生创造性思维 

4、信息技术与生物学科整合对教师提出的要求 

的能力。 

是由所感知或所想到的事物引起相关的事物的思维活动。信息 

技术能为联想提供丰富的感知材料,从而进一步发展学生们的 

形象思维。 

3.1-3通过想象训练,培养学生创造性思维能力 

想象是形象思维各种方法的综合运用,是通过表象的改造, 

在已有表象基础上创造新的形象,它是最具创造性的一种思维 

4.1教师要掌握和运用先进的现代教育技术。这就要求教师要有 

建构主义认为,知识不是通过教师传授得到,而是学习者在 娴熟的计算机操作技术,会制作网页,并具有上网收集资料的能 

定的情境即社会文化背景下,借助其他人的帮助,利用必要的 

力。 

4.2教师教学要突出重点、难点。运用现代信息技术的“网络教 

学”要注意展示的是教学的重点、难点内容,这样才能提高课堂 

教学效率。一味地追求使用计算机,过度使用视频图像,或频繁 

地玩转媒体,都会成为教学的干扰。 

4.3教师要善于组织学生。教师应具有较强的驾驭课堂的能力和 

课堂应变能力,引导学生共同探讨问题、解决问题,使学生的学 

习有目的、有成效地进行。 

性思维的能力呢? 

3.1.1创设情境,引发创造性思维的动力 4.4教师要控制好学生的上网时间。网络教学提高了学生学习的 

学生的学习过程必须处在一定的环境中,良好的学习环境 兴趣,给学生提供了自主学习的场所,如果学生学习的自由度过 

能激发学生的学习兴趣,使思维活跃起来。利用信息技术可以很 

大,就容易偏离教学目标的要求。 

信息技术与生物学科的整合,使学生不仅能学到现阶段生 

好地创设学习的环境。 

3.1.2利用信息技术,通过学生的联想,培养学生形象思维 物学科的研究成果,而且能了解和掌握最新的生物科学知识,跟 

的能力 

上生物科学发展的时代步伐;教学时间也不再受45分钟的限 

形象思维的基本方法有分解、组合、类比、概括、联想和想象 制,学生可在课后继续学习和练习;课堂教学组织形式也由单一 

 

等。其中的联想方法是形象思维中的一个重要的思维方法。联想 

性、单调性走向多样化和趣味性。

学习资料,通过意义建构的方式而获得。学习环境中的情境必须 

有利于学生对所学内容的意义建构。这就对教学设计提出了新 

的要求,也就是说,在建构主义学习环境下,教学设计不仅要考 

虑教学目标分析,还要考虑有利于学生建构意义的情境的创设 

问题,并把情境创设看作是教学设计的最重要内容之一。 

怎样利用信息化学习环境和资源创设情境,培养学生创造 

(上接第156页) 

(t= x; x-- q; q=t;x++;q一一;} 

l 

程序运行后结果不变,指针变量是变量能进行自增、自减运 

算,而数组名是地址常量,不能进行自增、自减运算,而在改变的函 

数中可以做运算x++,可见,形参的数组形式其本质是指针。因此数 

组形式作函数形参等同于指针变量作函数的形参,此函数的首部 

可改为: 

void inv(int¥x,int n),函数体不变。 

指针是C语言中重要的概念,是C的一个特色。指针与数组、 

函数相结合又是c语言中重中之重,指针作函数的参数体现了它 

们的结合与应用。利用它可编写出颇具特色、质量优良的程序。 

参考文献: 

[1】谭浩强.C语言程序设计【M】.北京:清华大学出版社,2005 

[2]洪维恩.C语言程序设计lM].北京:中国铁道出版社,2003 

35 


本文标签: 学生 教学 学习 指针 变量