已采納回答 / LawrenceLam
這取決于自己限定的結(jié)束條件,例如fun(int a){??? int? n;???? if (a==0||a==1)n=1;???? else n=fun(a-1)*a;???? return n;}當(dāng)a大于1,程序就會(huì)不停地遞歸直至a=1求出fun(1)的值,進(jìn)而一層層求出fun(2)......fun(a),最后返回a的階乘
2016-02-26
已采納回答 / 誰的青春不迷茫_
返回值為指向weapon結(jié)構(gòu)的指針的函數(shù)
已采納回答 / 流浪_老
這是鏈表的知識(shí)啊 else?p2->next?=?p1; ?在這句代碼里面P2->next ?指向了P1 ?然后把P1的值付給了P2 ?這個(gè)時(shí)候的 P2是另外一個(gè)內(nèi)存空間 ? 下一次用是不會(huì)覆蓋上一次的地方的 ?P2最后會(huì)指向 最后一個(gè)節(jié)點(diǎn) ?只需要找到頭指針 ?根據(jù)鏈表的性質(zhì)就可以輸出整個(gè)鏈表了?
已采納回答 / 伊兮塵昔
示例演示,不考慮這些吧。。。。線下自己寫的時(shí)候考慮一下就好了
已采納回答 / AAnonymous
malloc是分配內(nèi)存(type*)malloc(size);分配size個(gè)字節(jié)的內(nèi)存,因?yàn)閙alloc只能分配多少字節(jié)的內(nèi)存,不能指定分配內(nèi)存存什么類型,所以強(qiáng)轉(zhuǎn)為某類型(type*)其實(shí)這里C++寫相當(dāng)于 p1=p2=new weapon();
已采納回答 / 封不羈
為了下一次輸入時(shí)能夠得到這個(gè)鏈表的尾結(jié)點(diǎn),然后將這次的輸入生成的結(jié)點(diǎn)鏈接到鏈表的最后成為新的尾結(jié)點(diǎn),以此類推。如果不能很好理解的話,可以自己動(dòng)手畫一張圖(下面的圖僅是參考),會(huì)清晰很多: )<...圖片...>
已采納回答 / 伊兮塵昔
肯定不一樣啊,第一個(gè)是一維數(shù)組,直接指向的地址,而第二個(gè)是二維數(shù)組,指向的是的數(shù)組中的第一個(gè)元素,表達(dá)的含義和結(jié)果是不一樣滴
2015-08-10
已采納回答 / 封不羈
如果你學(xué)過java或者C++,對(duì)比他們的容器類,你就會(huì)知道,這些非常好用的容器類的原型就是鏈表,尤其是動(dòng)態(tài)鏈表。而這些容器類的應(yīng)用,幾乎所有的C++或者java項(xiàng)目都會(huì)用到他們: )
已采納回答 / onemoo
C語言運(yùn)算符有優(yōu)先級(jí)和結(jié)合性,但是參與運(yùn)算的操作數(shù)的求值順序并沒有規(guī)定。所以這兩個(gè)代碼是有問題的。第一個(gè)例子中:return 后面的 n-- 的值肯定是n,但是n自減在這個(gè)表達(dá)式中是什么時(shí)候發(fā)生的并不確定(在return語句后肯定減1了,但也沒意義了)第二個(gè)例子:step的參數(shù)--n的值肯定是n-1,而且在函數(shù)調(diào)用后n的值也肯定是減1了,但是由于操作數(shù)的求值順序未定,所以不能保證肯定先調(diào)用step函數(shù)。這兩個(gè)代碼的行為都是未定義的,能出運(yùn)算結(jié)果不一定代表這就是“正確的”結(jié)果。
2015-08-05
已采納回答 / onemoo
標(biāo)準(zhǔn)對(duì)此沒有規(guī)定,完全由編譯器自己實(shí)現(xiàn)。自己寫代碼時(shí)不要依賴這種“未指定”的行為。想要知道你使用的編譯器是怎樣實(shí)現(xiàn)的,就用gdb打印出數(shù)據(jù)結(jié)構(gòu)看一下吧。
2015-08-01
已采納回答 / 墮天使008
unsigned 并不是 一個(gè)類型, unsigned 這個(gè)關(guān)鍵詞不能單獨(dú)出現(xiàn), unsigned long或者unsigned int 才是一個(gè)類型,指的是 無符號(hào)的long 類型,雖然長(zhǎng)度沒變依舊是long 的長(zhǎng)度,但數(shù)據(jù)的最大值是原來的2倍。單獨(dú)一個(gè) unsigned 該表示什么類型? “無符號(hào)的” 這個(gè)詞怎么算類型, 不限制長(zhǎng)度的無符號(hào)數(shù)值嗎?
2015-07-24