- 论坛徽章:
- 0
|
大家好!
我在做关于指针函数的时候,遇到了一些小问题,有些不解。代码如下:
#include<iostream>;
using namespace std;
float* search(float (*pointer)[4],int n);
int main(){
float score[][4]={{60,70,80,90},{100,83,67,85},{45,78,90,66}};
float *p;
int i,m;
cout<<"enter the number of student:";
cin>;>;m;
cout<<"The scores of No. "<<m<<" are:\n";
cout.setf(ios::fixed);
cout.setf(ios::showpoint);
cout.precision(2);
p=search(score,m);//问题1:这里到底返回的是什么?
//我是认为返回的是地址。
for(i=0;i<4;i++)
cout<<*(p+i)<<'\t';
cout<<endl;
return 0;
}
float* search(float (*pointer)[4],int n){
float *pt;
pt=*(pointer+n);//问题2:这里为什么这么写?
//*(pointer+n)得到的应该是一个值对吧?
//那怎么可能把一个值赋值给一个指针变量呢?指针变量接受的不是一个地址吗?
//但这样写编译却也对,运行也很正常。
//我指针这块的知识学得不太好,希望得到指点。
return (pt);
} |
|