それらのものを指す

ポインタはデータ型であり、メモリユニット
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;
}

おすすめ

転載: blog.csdn.net/qq_38208612/article/details/106027753