指针

指针对于两个函数的数据交换是很重要的

将指针赋为0

int *p,a=0;
p=a;//错误 
p=123;//错误 
p=null;//正确 
p=0;//正确 

指针操作

int *p,a;
double b;
 p=&a;//正确 
 p=&b;//错误 
int *q=p;//正确
 const *w;
 *w=&a;//正确
 *w=15;//错误 ,w是不能被修改的 
 
 
 //一维数组与指针
 int *p,a[10];
 p=a;//正确,指针指向的是数组第一个元素的地址
 //*(a+i)就相当于a[i]
 for(p=a;p<a+10;p++) cin>>*p; 
 //相当于 for(int i=0;i<10;i++) cin>>a[i];

指针可以实现跨函数操作数,比如在通过函数实现两个数交换两个数值时,此时可定义为全局变量,也可以通过指针来实现这个功能

#include<iostream>
using namespace std;
void change(int *p,int *q){ 
	int t;
	t=*p;
	*p=*q;
	*q=t;//函数为空函数,那么就无返回值
	//因此如果不用指针或全局变量,那么就对a,b的值无影响,也无法达到交换数值的目的 
}
int main(){
	int a,b;
	cin>>a>>b;
	change(&a,&b);
	cout<<a<<b<<endl;//此时a,b的值已经交换了 
	return 0;
}

指针做参数

//形参为指针
void f(int *a,int n){
	
} 
int main()
{
	int b[10];
	f(&b,10);
}


//形参实参都为指针
 void f(int *a,int n){
	
} 
int main()
{
	int b[10],*p;
	p=b;
	f(p,10);
}

//实参为指针
void f(int a[10],int n){
	
} 
int main()
{
	int b[10],*p;
	p=b;
	f(p,10);
} 
 

指向函数的指针:

格式:数据类型 (*函数名)(形参列表)

作用:可以指向同类型都函数

#include<iostream>
using namespace std;
int f(int a,int b,int(*c) (int x,int y) ){//c作为指向函数的指针 
	return c(a,b)*c(a,b);
}
int max(int q,int p){
	return p>q?p:q;
}
int min(int w,int r){
	return w<r?w:r;
}
int main()
{
	int t,u;
	cin>>t>>u;
	cout<<f(t,u,max)<<endl<<f(t,u,min)<<endl;//利用指向函数的指针调用不同的函数 
	//就相当于第一次调用的是f和max函数 ,第二次调用f和min函数 
	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值