C 過載小問題, 求助 C 過載小問題

2022-08-03 06:45:19 字數 1405 閱讀 5769

1樓:琴秀曼

你先說明這個函式的作用是什麼,如果是求兩個陣列中的所有元素和,可以如下修改:

int add(int *p1,int *p2)return sum;

}如果是返回一個新的陣列,每個陣列的元素為原來兩個陣列中對應元素之和,那麼返回值型別就應該是指標而不是int或char

2樓:

// note:your choice is c++ ide#include

using namespace std;

int add(int *p1,int *p2)char add(char *p1,char *p2)void main()

;int b[5]=;

int c;

c=add(a,b);

cout<

3樓:匿名使用者

for語句執行完後,你的i值已經為5了,再加5就越界了,改為#include

using namespace std;

int add(int *p1,int *p2)char add(char *p1,char *p2)void main()

;int b[5]=;

int c;

c=add(a,b);

cout<

4樓:

迴圈結束 i = 5

return的是 a[5] + b[5]

但是請注意 陣列小標從 0 開始

所以 最後一個元素 是 a[4] b[4] , 陣列訪問越界啦

5樓:匿名使用者

請聽我細細給你解釋,首先,你i在執行完過後變成了5,所以p1+i和p2+i都是越界了的,改成i<4就沒問題了,還有一點,你這題沒有說清楚你到底要達到一個什麼目的,假如你想達到的把兩個陣列中的值加起來為目的,2樓可以滿足你,但是假如你緊緊只是想把a[4]和b[4]的值相加,像你那樣做,改成i<4就行了,還有一點,假如你是要算a[4]和b[4]的值相加,不能省略cout<<"(int ,int)";假如因為它要保證下一次執行過後i加了一個1,假如你把這句註釋掉,直接在i=0時,然後這個迴圈就相當於結束了,你算出的c也只是a[0]+b[0]的值,不相信你可以註釋掉看看,順表把那個a[0]換個值,如a[0]=2,那麼,算出來的c就是7,就是這樣。

純手寫,你的肯定是我前進和幫助別人的動力,願你我攜手共同播撒愛心之種,望採納。

6樓:匿名使用者

你的程式沒有錯,指標也沒有錯;

你只是只過載了++,卻沒有過載「=」,

那麼你的c=a+b中,「=」是不能直接用於array物件的你只要把「=」過載或者,不用c,直接寫(a+b).show都是可以 的;

我相信過載個「=」對你而言不是問題吧,呵呵

c 過載的問題

嗯就是那樣就可以繼承。public virtual void zz 子類可以覆蓋該方法 允許在派生類中重寫 public override void zz 對父類zz方法的覆蓋。public void zz 就是一個普通的公共方法。public virtual void zz 如果在父類中有這種寫法...

c 中函式過載問題,C 中函式過載有啥用?

list類中是否已宣告瞭兩個過載函式?c 中函式過載有啥用?類的建構函式跟類名相同,即建構函式都同名。如果沒有函式過載機制,要想例項化不同的物件非常麻煩。操作符過載,本質上就是函式過載,它大大豐富了已有操作符的含義,方便使用,例如 可用於連線字串等。過載函式是函式的一種特殊情況,為方便使用,c 允許...

C語言,小問題,C語言,一個小問題

n在c語言中的意思是 回車 照著麼說的,while c getchar n 就是 當 從鍵盤讀取一個值,並賦值給c 不等於回車 說白了就是當你輸入回車 就是恩一下 enter 鍵 時,這一段 就執行結束了。例如 while c getchar n 就是說當你敲入回車後,中的東西就不讀了 當然回車之前...