係統粉 > 電腦問答 > 其他問答

已解決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
相關問答
最新其他問答
解決方法