指针函数的用法

实例说明:
有4个学生的四科考试成绩,摘除至少有一科不合格的学生,并将成绩列表输出。
实现过程:

#include <iostream>
using namespace std;
int *find(int (*p)[4])
{
	int i,*pt,t=0;
	pt=*(p+1);     //获取下一行的首地址
	for(i=0;i<4;i++)
	{
		if(*(*p+i)<60)
		{
			pt=*p;    //指向本行首地址
		}
	}
	return (pt);   //返回首地址
}
int main()
{
    int a[][4]={{90,99,98,99},{88,78,89,90},{67,65,56,55},{34,89,90,99}};
    int i,*p,j;
    for(i=0;i<4;i++)
    {
    	p=find(a+i);
    	if(p==*(a+i))      //查找有不及格的行
    	{
    		cout<<"The student NO."<<i+1<<" list:";
    		for(j=0;j<4;j++)
    		cout<<*(p+j)<<",";
    		cout<<endl;
		}
	}
}

输出结果:

技术要点:
本实例中定义一个指针函数,这类函数返回值为指针型数值(即一个地址);
该函数定义为:
int *find(int (*p)[4]);
在程序代码中,调用是:
p==*(a+i)
变量p是一个整型指针,该函数返回一个指向整型变量的指针。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值