指针那些事儿

指针是一种数据类型,与内存单元地址密切相关
1.指针与变量

int a=1,*p=&a;//p是指向a
cout<<"a的地址"<<&a<<"\n";
cout<<"a的值"<<a<<"\n";
cout<<"p的地址"<<&p<<endl;
cout<<"p的值"<<p<<endl;
cout<<"p指向的变量"<<*p<<endl;

在这里插入图片描述
2.指针与函数
指针作为函数参数的作用
 函数的形参接受的是实参的地址,通过指针间接访问实现值传递。
 设置多个指针参数,可以从函数中带回多个返回值。
 传递一块连续存储的数据块,传递首地址比传数据时间开销小。

//指针作为函数参数 计算一维数组平均值 做大值 最小值
double Faver(int s[],int n,int * max,int * min)
{
	double sum=0.0;
	*max=s[0];
	*min=s[0];
	//s[]为输入数组,n为数组长度,max为指向最大值元素指针 min为指向最小值元素指针
	for(int i=0;i<n;i++)
	{
      sum=sum+s[i];
	  if(s[i]>*max)
	  {
		  *max=s[i];
	  }
	   if(s[i]<*min)
	  {
		  *min=s[i];
	  }
      
	}
	return  sum/n;
}

3.指针作为函数返回值

//去字符串前面空格
char * Itrim(char str[])
{
  int k=0;
  while(str[k]==' ')
  {
	  k++;
  }
  int j=k;
  while(str[j]!='\0')
  {
   str[j-k]=str[j];//每个字符前移K位
   j++;
  }
  str[j-k]='\0';//结束符
  return &str[0];
}

4.指向函数的指针

double Length(double r)
{//求圆周长
	return r*3.14*2.0;
}
double Area(double r)
{//求圆面积
	return 3.14*r*r;
}
double Function(double (* f)(double),double x)
{
	return (*f)(x);//间接调用f指向的函数
}
int main()
{
//指向函数的指针
int r=2.0;
cout<<Function(Area,r)<<endl<<Function(Length,r);
return 0;
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值