物件指標做形參問題

2022-12-21 16:31:04 字數 1275 閱讀 1278

1樓:匿名使用者

錯的地方可不止一點吧。。。

1.成員函式double max(student *p);沒有函式實體

2.外部函式double max(student *p,student *q)返回的竟然是個int(你要它強制轉換?有啥意義?)

3.for(i=0;i<4;i++)j=max(*m[i],*m[i+1])這樣就能求出最大值了?你這個結果不就是最後兩個student的grade在比麼, 5 4 3 2 1按你的結果應該是2吧

4.max(*m[i],*m[i+1])你函式的定義引數是指標,應該是max(&m[i],&m[i+1])吧

5.int main沒有返回值

6.grade是私有的,外部函式直接用了能編譯麼?

2樓:

#include

using namespace std;

class student

private:

int num;

double grade;

};double max(student *p,student *q) //引數不對111111

int main()

;student *m=a;

int i,j; // j 最好為double 222222

for(i=0;i<4;i++)

j=max(*m[i],*m[i+1]); //取址符為:& 333333 成員函式不能這麼用,應該用友元444444

cout<

using namespace std;

class student

private:

int num;

double grade;

};double max(student *p,student *q)

int main()

;student *m=a;

int i;

double j;

for(i=0;i<4;i++)

j=max(&m[i],&m[i+1]);

cout<

return 0;}

3樓:滕濯

'double student::grade' 是私有的,不能直接用於比較

double max(student *p);和函式實現時的引數不一致

4樓:匿名使用者

m前面幹什麼要* 還有...你這個做法感覺很詭異,總覺得怪怪的

二級指標作為函式引數,二級指標做形參,實參為二維陣列

傳遞二維陣列的陣列名不能使用二級指標來接收他們型別不皮配的應使用陣列指標,即char p 126 指標型別解釋 int p 首先p和 結合,表時變數p是一個指標,然後再與 結合,表明這個指標指向的是一處指標的地址。int p 126 首先p和 結合,表時變數p是一個指標,然後再與結合,表明這個指標指...

c 中空指標物件訪問成員問題,c 中空指標物件訪問成員問題

這與類名呼叫函式是一樣的 與物件無關 哦 錯了 只有靜態函式才可以 好像是這樣 主動使用一個類時,類就會載入到記憶體中 包括類的靜態成員,和方法 靜態和非靜態都會載入 如此,我們宣告一個類指標時,類就會被載入 所以即使是一個空指標,但訪問的是類的方法。引用smile5201314y的回答 pbase...

為什麼這個指標不能改變實參的值,形參不能改變實參,為什麼在用指標傳遞數值的時候又可以改變呢

因為在sp函式中,將b的地址賦給了a,所以main函式中的p就沒改變。形參不能改變實參,為什麼在用指標傳遞數值的時候又可以改變呢?樓主你好,要bai理解這個du必須理解一個問題,就是指標的zhi定義dao。指標自己是 有一個存版儲空間的,權裡面存的是被指的一個數 如a 的地址。也就是說指標中存的是a...