论文部分内容阅读
摘 要:指针是C语言里比较抽象的概念,其使用灵活,本文从指针概念出发,结合实例,使大家对指针有个基本的认识,为以后的学习打下基础。
关键词:C语言;地址;指针;指针变量
C语言是各高中职院校程序设计专业必学的一门基础程序设计语言,指针是其一个重要的概念,但是因为其概念抽象,使用比较复杂灵活,初学者碰到指针问题往往不知所措,尤其是逻辑思维数学基础较差的中职学生,笔者根据多年的教学经验,从概念入手,以等级考试中的习题举例,以使大家对指针有一个清晰的认识,为更好地学习程序设计打下良好的基础。
1 什么是指针
在现实中,我们总听到说“某某住在XX宿舍”,某某是指某个学生,XX是指宿舍号,就是这个宿舍的地址,换句话说,XX“指向”这个宿舍,因此,可将xx地址形象化称为“指针”,意思通过它的指向能找到我们要找的人。
在C语言中,定义了一个变量,系统就会为这个变量分配规定的存储空间,如整型变量在TC中要分配两个字节的空间,float型变量是分配4个字节的存储空间,系统中,每个存储空间都有编号,这个编号就是“地址”,跟找人一样,我们要找这个变量,只要找到这个变量所在的地址即可,就能根据地址指向找到要找的变量,地址有指向功能,形象概括就是“一个变量的地址称为该变量的指针”。如果在程序里专门定义一个变量,用来存放另一变量的地址(指针),那么就把这个变量称为“指针变量”。①
2 指针变量的定义
指针变量定义的一般形式为:类型名*指针变量名,其类型名指的是指针变量可以指向的变量的类型;如int*p,表示的意思是,定义了一个指针变量p,它可以指向整型的数据,也就是说,p里可以存放任何整型数据的地址,而不能存放其它类型变量的地址。
3 指针变量的引用
要引用指针变量,有两个相关的运算符必须掌握,就是“&”和“*”,“&”为取地址运算符,可以取某个普通变量的地址,如取普通变量a的地址就为&a。而“*”为指针运算符,表示某个指针变量所指向的对象,如*p表示地址p所指向的变量。
程序分析:程序从主函数开始运行,首先是定义了普通变量k,赋初值为3,并且定义了一个指针变量p,使它指向k,接下来调用函数sp,调用时,将p的值传递给形参a,相当于a也指向k,故输出*a的值为3,然后,改变取b的地址放入到a内,相当于改变a的指向,此时a指向b,输出*a的值为2,再经过*a=*a*2的运算,输出*a的值为4。结束函数调用,返回主函数,输出k和*p,p的指向没变,仍指向k,输出3,3。整个程序的输出结果为3,2,4,3,3。
程序分析:从主函数开始运行程序,a,b,c,d的初始值分别为4,3,0,0,然后将a,b,&c,&d作为实参传递给形参x,y和指针c和d这里要注意,主函数内的c、d和函数内的c、d表示不同的变量,经过传递后,指针c、d指向普通变量c和d,*c=x+y即表示为指针c所指向的变量赋7,同样,*d=x-y表示为d所指向的变量赋值为1,即为普通变量c和d赋值为7和1,返回主函数,输出c和d的值为7,1。
总之,C语言的指针使用非常灵活,但是,只要我们理解了指针的概念,利用概念好好分析程序,多思考,多比较,多应用,就能掌握好它。
参考文献
[1]谭浩强.C程序设计(第四版)[M].北京:清华大学出版社,2010.
[2]未来教育.全国计算机等级考试模拟考场二级C.电子科技大学出版社,2015.
关键词:C语言;地址;指针;指针变量
C语言是各高中职院校程序设计专业必学的一门基础程序设计语言,指针是其一个重要的概念,但是因为其概念抽象,使用比较复杂灵活,初学者碰到指针问题往往不知所措,尤其是逻辑思维数学基础较差的中职学生,笔者根据多年的教学经验,从概念入手,以等级考试中的习题举例,以使大家对指针有一个清晰的认识,为更好地学习程序设计打下良好的基础。
1 什么是指针
在现实中,我们总听到说“某某住在XX宿舍”,某某是指某个学生,XX是指宿舍号,就是这个宿舍的地址,换句话说,XX“指向”这个宿舍,因此,可将xx地址形象化称为“指针”,意思通过它的指向能找到我们要找的人。
在C语言中,定义了一个变量,系统就会为这个变量分配规定的存储空间,如整型变量在TC中要分配两个字节的空间,float型变量是分配4个字节的存储空间,系统中,每个存储空间都有编号,这个编号就是“地址”,跟找人一样,我们要找这个变量,只要找到这个变量所在的地址即可,就能根据地址指向找到要找的变量,地址有指向功能,形象概括就是“一个变量的地址称为该变量的指针”。如果在程序里专门定义一个变量,用来存放另一变量的地址(指针),那么就把这个变量称为“指针变量”。①
2 指针变量的定义
指针变量定义的一般形式为:类型名*指针变量名,其类型名指的是指针变量可以指向的变量的类型;如int*p,表示的意思是,定义了一个指针变量p,它可以指向整型的数据,也就是说,p里可以存放任何整型数据的地址,而不能存放其它类型变量的地址。
3 指针变量的引用
要引用指针变量,有两个相关的运算符必须掌握,就是“&”和“*”,“&”为取地址运算符,可以取某个普通变量的地址,如取普通变量a的地址就为&a。而“*”为指针运算符,表示某个指针变量所指向的对象,如*p表示地址p所指向的变量。
程序分析:程序从主函数开始运行,首先是定义了普通变量k,赋初值为3,并且定义了一个指针变量p,使它指向k,接下来调用函数sp,调用时,将p的值传递给形参a,相当于a也指向k,故输出*a的值为3,然后,改变取b的地址放入到a内,相当于改变a的指向,此时a指向b,输出*a的值为2,再经过*a=*a*2的运算,输出*a的值为4。结束函数调用,返回主函数,输出k和*p,p的指向没变,仍指向k,输出3,3。整个程序的输出结果为3,2,4,3,3。
程序分析:从主函数开始运行程序,a,b,c,d的初始值分别为4,3,0,0,然后将a,b,&c,&d作为实参传递给形参x,y和指针c和d这里要注意,主函数内的c、d和函数内的c、d表示不同的变量,经过传递后,指针c、d指向普通变量c和d,*c=x+y即表示为指针c所指向的变量赋7,同样,*d=x-y表示为d所指向的变量赋值为1,即为普通变量c和d赋值为7和1,返回主函数,输出c和d的值为7,1。
总之,C语言的指针使用非常灵活,但是,只要我们理解了指针的概念,利用概念好好分析程序,多思考,多比较,多应用,就能掌握好它。
参考文献
[1]谭浩强.C程序设计(第四版)[M].北京:清华大学出版社,2010.
[2]未来教育.全国计算机等级考试模拟考场二级C.电子科技大学出版社,2015.