养生 装修 购物 美食 感冒 便秘 营销 加盟 小吃 火锅 管理 创业 搭配 减肥 培训 旅游

如何使用指针编写C程序-2

时间:2024-09-28 21:29:10

善于利用指针指针是C的一大特色。正确而灵活的运用它,可以使程序简洁、灵活、高效。每一个学习和使用C语言的人都应当深入的学习和掌握指针。

如何使用指针编写C程序-2

工具/原料

计算机一台

VisualC++6.0编程环境

方法/步骤

1、返回指针值的函墙绅褡孛数一个函数可以返回一个整型值、字掼屐磴磨符值、实型值等,也可以返回指针型的数据,即地址。定义返回指针值的函数的一般形式:类型名*函数名(参数列表);如“int*a(intx,inty);”a是函数名,调用它以后能得到int*型的指针,即整型数据的地址,x,y是形参。例1:有a个学生,每个学生有b门课程,要求在用户输入学号后,能输出该学生的全部成绩。用指针函数实现。编程思路:定义一个二维数组score,用来存放学生成绩(假设a=3,b=4),定义一个查询学生成绩的函数search,它是一个返回指针的函数,形参是指向一维数组的指针变量和整型变量n,从主函数将数组名score和要找的学生号k传递给形参。函数的返回值是&score[k][0]。然后在主函数输出全部成绩。

如何使用指针编写C程序-2

2、例2:有a个学生,每个学生有b门课程,找出其中不及格的课程的学生及其学生号。编程思路:在上例的程序中进行修改。main函数不是只调用一次search函数,而是调用3次search函数,在search函数中检查3个学生有无不及格的课程,如果有,就返回该学生的0号课程的地址&score[i][0]。在main函数中检查返回值,输出有不及格学生4门课的成绩。

如何使用指针编写C程序-2

3、指针数组和多重指针什么是指针数组指针数组中的每一个元素均为指针型数据即地址;定义指针数组的一般形式:类型名*数组名[数组长度];如int*p[4];显然是数组形式,表示p数组中有四个元素。然后再与前面的*结合,表示此数组是指针类型的。什么情况下用到指针数组一般指针数组比较用来指向若干个字符串,使字符串处理更加灵活。例:将若干字符串按字母顺序由大到小输出编程思路:定义一个指针数组name,用各字符串对它进行初始化,即把各字符串中第一个字符的地址赋给指针数组的各元素。然后用选择法排序,但不是移动字符串,而是改变指针数组的各元素的指向。

如何使用指针编写C程序-2

4、指向指针数据的指针指向指针数据的指针变量简称指向指针的指针。name是一个指针数组,它的每一个元素都是指针型的变量,其值为地址。name代表该指针数组首元素的地址。name+i就是name[i]的地址。可以设置一个指针变量p,指向指针数组的元素。P就是指向指针型数据的指针变量。定义一个指向指针数据的指针变量:char**p;p指向指针数据的指针。

如何使用指针编写C程序-2

5、指针数组作main函数擢爻充种的形参指针数组的一个重要应用就是作mai荏鱿胫协n函数的形参。通常main函数的第一行是intmain()或intmain(void)括号中是空或有“void”,表示main函数没有参数,调用main函数时不必给出实参。在某些情况下,main函数可以有参数,intmain(intargc,char*argv[])其中argc和argv就是main函数的形参,他们是程序的”命令行参数”;什么情况下main函数需要参数?main函数的形参是从哪里传递过来的?形参的值是不可能在main函数中的。Main函数是操作系统调用的,实参只能由操作系统给出。实参和执行文件的命令是一起给出的。命令行的一般形式:命令名参数1参数2……参数n命令名是可执行文件名;选择“工程”“设置”“调试”“程序变量”输入实参;

如何使用指针编写C程序-2

6、动态内存分配与指向它的指针筐毙险裆变量C语言中允许建立内存动态分配区域,存放一些临骀旬沃啭时用的数据,这些数据可以随时开辟,随时释放。存放的特别的自由存储区成为堆(heap)区,这些数据不能用变量名或数组名引用,只能通过指针来引用。怎样建立内存的动态分配对内存的动态分配是通过系统的提供的库函数来实现的。主要有:malloc,calloc,free,realloc.头文件“#stdio.h<stdlib.h>”void*malloc(unsignedintsize);其作用是在内存动态存储区中分配一个长度为size的连续空间。void*calloc(unsignedn,unsignedsize);其作用是在内存动态存储区中分配n个长度为size的连续空间,这个空间一般比较大,足以保存一个数组。voidfree(void*p);其作用是释放指针变量P所指向的动态空间。void*realloc(void*p,unsignedintsize);如果已经通过malloc,colloc获得动态空间,想改变其大小,可以用realloc函数重新分配。函数返回值都是void*类型的。void指针类型可以定义一个基类型为void的指针变量,它不指向任何类型的数据。指向空类型或不指向确定的类型。在它的值赋给另一个指针变量时由系统对它进行类型转换,使之适合被赋值的变量的类型。

如何使用指针编写C程序-2

© 一点知识