欧美一区2区三区4区公司二百,国产精品婷婷午夜在线观看,自拍偷拍亚洲精品,国产美女诱惑一区二区

關(guān)于C++結(jié)構(gòu)體的函數(shù)調(diào)用

在一段利(沒)用(事)鏈(找)表(事)來實現(xiàn)正整數(shù)相加的程序中,有一個函數(shù)是這樣的,實現(xiàn)了將位數(shù)較小的鏈表最高位加到位數(shù)較大的鏈表上的功能。

void addMostDigit(List addee, List adder){//addee的位數(shù)不小于adder
? ? int index = addee.size() - adder.size();
? ? int sum = addee.get(index)->digit + adder.header->digit;
? ? adder.header = adder.header->next;
?
? ? if (sum < 10)
? ? {
? ? ? ? addee.get(index)->digit = sum;
? ? ? ? return;
? ? }
?
? ? while (sum >= 10){
? ? ? ? addee.get(index)->digit = sum % 10;
?
? ? ? ? if (index == 0)//需要變動最高位
? ? ? ? {
? ? ? ? ? ? Node* newHead = new Node('1');
? ? ? ? ? ? newHead->next = addee.header;
? ? ? ? ? ? addee.header = newHead;
? ? ? ? ? ? break;
? ? ? ? }
?
? ? ? ? sum = addee.get(--index)->digit + sum / 10;
? ? ? ? if (sum < 10)
? ? ? ? {
? ? ? ? ? ? addee.get(index)->digit = sum;
? ? ? ? ? ? break;
? ? ? ? }
? ? }
}

錯誤是很簡單的,此處傳遞的List應(yīng)該是List*,而非List;這一點相信在交換兩個整數(shù)值的函數(shù)中就已明確。我犯錯的原因,大概是不知不覺間又用了java的思維——一切都是引用變量。

?

解決方案很簡單,該用地址傳遞即可。

void addMostDigit(List* addee, List* adder){
? ? int index = addee->size() - adder->size();
? ? int sum = addee->get(index)->digit + adder->header->digit;
? ? adder->header = adder->header->next;
? ??
? ? if (sum < 10)
? ? {
? ? ? ? addee->get(index)->digit = sum;
? ? ? ? return;
? ? }
? ??
? ? while (sum >= 10){
? ? ? ? addee->get(index)->digit = sum % 10;
? ? ? ??
? ? ? ? if (index == 0)
? ? ? ? {
? ? ? ? ? ? Node* newHead = new Node('1');
? ? ? ? ? ? newHead->next = addee->header;
? ? ? ? ? ? addee->header = newHead;
? ? ? ? ? ? break;
? ? ? ? }
? ? ? ??
? ? ? ? sum = addee->get(--index)->digit + sum / 10;
? ? ? ? if (sum < 10)
? ? ? ? {
? ? ? ? ? ? addee->get(index)->digit = sum;
? ? ? ? ? ? break;
? ? ? ? }
? ? }
}

從這個角度講,java的原點運算符實際上等價于C++的->,而java編程時的規(guī)則,不過是C++可遵守的諸多規(guī)則之一而已。

換而言之,在棧幀的調(diào)用時,準(zhǔn)備的入口參數(shù)中,真的包含了List這個struct的實體。那么,如果struct很大的話,這樣的函數(shù)調(diào)用豈不是花費巨大?如果這樣,那么全部用指針或引用(引用更安全一些),或許會是一種很好的編程方法。

文章鏈接: http://m.qzkangyuan.com/21884.html

文章標(biāo)題:關(guān)于C++結(jié)構(gòu)體的函數(shù)調(diào)用

文章版權(quán):夢飛科技所發(fā)布的內(nèi)容,部分為原創(chuàng)文章,轉(zhuǎn)載請注明來源,網(wǎng)絡(luò)轉(zhuǎn)載文章如有侵權(quán)請聯(lián)系我們!

聲明:本站所有文章,如無特殊說明或標(biāo)注,均為本站原創(chuàng)發(fā)布。任何個人或組織,在未征得本站同意時,禁止復(fù)制、盜用、采集、發(fā)布本站內(nèi)容到任何網(wǎng)站、書籍等各類媒體平臺。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系我們進(jìn)行處理。

給TA打賞
共{{data.count}}人
人已打賞
建站教程

C++調(diào)用結(jié)構(gòu)體函數(shù)

2023-7-7 14:03:35

建站教程

c++ c#結(jié)構(gòu)體調(diào)用

2023-7-7 14:39:48

0 條回復(fù) A文章作者 M管理員
    暫無討論,說說你的看法吧
?
個人中心
購物車
優(yōu)惠劵
今日簽到
有新私信 私信列表
搜索
主站蜘蛛池模板: 茌平县| 德兴市| 寿宁县| 延长县| 西宁市| 丘北县| 紫云| 肇庆市| 望谟县| 探索| 松原市| 额敏县| 酒泉市| 双牌县| 五河县| 崇州市| 从江县| 扎囊县| 深州市| 司法| 镇安县| 双城市| 湖口县| 五大连池市| 内黄县| 滦平县| 宜兰县| 九龙城区| 清原| 全椒县| 木兰县| 丽江市| 和林格尔县| 张家港市| 茂名市| 淮北市| 平果县| 项城市| 承德市| 九江县| 丰城市|