cp f ii 中的p不理解,不理解最後輸出為

2021-05-23 02:49:00 字數 1817 閱讀 9771

1樓:匿名使用者

p=f(i,++i);先運算()內的逗號表示式,從右到左的順序。所以f(int a,int b)的中的引數均為3進入f函式後,a==b成立,返回的是c=0所以p的值即為0

2樓:匿名使用者

p=f(i,++i);相當於是p=f(3,3)在int f(int a,int b)裡下面這段應該用最近原則理解一下f(a>b) c=1;

else if(a==b) c=0;

else c=-1;

這段應該這樣子理解

f(a>b)

else

因為a=3,b=3所以內a>b不成立,所以執容行else裡面的if(a==b) c=0;所以c=0,輸出的是0

3樓:九都多平

輸出的數是為0,是對的。 因為c的值為零,那麼f的返回值也是0,int f 是個呼叫函式。

p=f(i,++i) p=0(i,++i)printf("%d\n",p)

結果就是0

4樓:匿名使用者

建議在f函式中 加入 printf("%d,%d\n",a,b) ; 觀測 傳入的值。。。 p=f(i,++i); 你老師應該說過

先++,再執行 所以他等版於 i++之後再呼叫權的函式f被傳入的i 都是3.。所以相等,所以為0. 擴充套件的講一下。。

p=f(i,i++); 如果是這樣的話,為什麼是1呢?不知道你老師說過 呼叫函式的具體過程沒。呼叫函式時,程式將值 從右到左的 存入記憶體堆疊(誰叫堆疊是先進後出呢?

)所以 p=f(i,i++); 時先傳了 右邊的i,但是i 還得執行個自加,所以在傳左邊的i時,此i就非彼i了,他自加了1.所以結果為1. 如果你想自己試驗,你可以 p=f(++i,i);p=f(i++,i);的到處換 來驗證。。。

c++中*p+i與*(p+i)

5樓:徐九

第一bai個問題,因為你定義的p指標是字du符型zhi,所以列印的時候列印的是該地址dao的字元,你用強制版轉換函權數 int(p)代替第一個列印函式中的p就可以了

第二個問題,同樣,i是int型,*p+i後,強制轉換成了int型再做加法的,結果也是int型,所以,你列印出的是a的ascii碼加1就是97,同理,b是98.。。。同樣,用char(*p+i)強制轉換成char型就可以了

第三個問題,還是型別轉換的問題。。。

指標能直接對地址進行操作,使得程式跳轉還有資料結構(比如鏈式儲存結構)用起來都很方便,這個不好說,慢慢體會吧,反正我是非科班的,開始一樣不習慣,慢慢的就習慣了

半夜回答。。。。給分吧。。。o(∩_∩)o~

c++ for迴圈new問題: int *p[10] ; for(i=0;i<10;i++) { p[i] =new int(i); } 我用

6樓:匿名使用者

int *p[10] ;

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

我用du

for(i=0;i<10;i++)//new 和delete是一一對zhi應的,先先分配的dao後刪除

版,後申請的先刪除,那麼就權應該時這樣的:for(i=9;i>=0,i--) delete p[i]; (i在前面的程式段中應該已經定義過了..否則會報錯)

按照我的建議試試...

祝你好運

7樓:匿名使用者

你的釋放記憶體的方法是對的,如果有錯的話可能是別的地方出錯。

8樓:匿名使用者

你的**在vc++6 下執行沒有錯誤

同學不理解

人那有不說錯話的時候,自己發現了這一點是很可貴的!但還是需要去改正!加油相信自己能可以改掉的,會和別人好好相處的!加油 沒辦法,靠你自己把握了。道個歉然後下次說話前考慮一下 說話時宛轉一點,不要太直白。看見或聽說同學的進步或做得好的方面就當面誇獎 讚揚他 她 只能看你自己的意志夠不夠堅定了,能不能控...

我不理解父母的作文,我不理解父母的作文400字

我不理解父母的愛 父母是伴著我走過十四年的人。父母總是無私的關愛著我,也許因為是在父母的關愛下漸漸長大,覺得父母的愛不象以前那樣無微不至,小時候我總在煙雨中能找到來送傘一臉焦急的母親,可現在我有時只能望著從天飄下來的雨滴發呆。以前不管父母去哪,我都能如影隨形,但現在的我只能與家中的書本做伴。每當這時...

關於我不理解父母的作文左右,關於我不理解父母的作文300字左右

這件事已經過去將近一個月了。卻留給了我太多天多的思考 62616964757a686964616fe4b893e5b19e31333337373636 星期天,我和爸爸去書店買書。我左瞧右看,選中了一本 科學世界 與此同時,爸爸也抱著幾本厚厚的參考書和資料從另一間屋子出來了但看到我手中的書後,面部表...