系统粉 > 电脑问答 > 其他问答

已解决c++语句理解问题

提问者:宥惑朕  |  浏览次  |  提问时间:2017-02-04  |  回答数量:5

c++语句理解问题#include <iostream>using namespace std;void average(float *p,int n){int i;float sum=0;for(i=0;i<n;i++,p++)sum+=(*p);cout<<sum/n;}int main (void){float score[3][4]={{65,67,70,60},{80,87,90,81},{90,99,100,98}};average(*score,12);return 0;}在这个程序里,在MAIN函数中调用AVERAGE函数的时候,里面的实际参数*SCORE是代表什么呢?指针指向二维数组的时候,如果只用名字的话,不是应该代表行吗??为什么可以代表里面的元素呢?

已有5条答案
summer剧终

summer剧终

回答数:8  |  被采纳数:78

1表示score数组首地址
2一维数组名可以做指针,二维数组不行,可以用二维数组首行地址代替,因为首行地址跟数组地址相等,但最好用average((float*)score,12);
2017-02-04 03:02:53
赞 0
夕颜在

夕颜在

回答数:129  |  被采纳数:131

我也觉得是这样啊...
但是为什么运行起来他还是按照元素算的呢??

难道在被调函数里,就可以变成元素了吗?
他的SUM+=(*P)还是把所有元素都调用了一次..

二维数组名字不是行地址吗。。。。有点晕
我是菜鸟,请帮帮
2017-02-04 05:46:31
赞 12
放开那个女吊

放开那个女吊

回答数:11  |  被采纳数:18

只是传了score的地址,调试时可以发现score的地址是0x0013ff50,进入函数后p=0x0013ff50,这时score相当于float score[12]数组
2017-02-04 07:03:43
赞 1
腹黑攻vnh

腹黑攻vnh

回答数:192  |  被采纳数:86

只传数组名当然可以,但必须强制类型转换
2017-02-04 08:14:25
赞 19
那床男女

那床男女

回答数:92  |  被采纳数:20

好的,我再理解理解,谢谢!
2017-02-04 07:05:49
赞 9
相关问答
最新其他问答
解决方法