1樓:網友
你的看法沒有錯,因為你的程式僅僅拷貝了第乙個節點,而第二個乃至以後的節點仍然會受到影響。我想這裡涉及到乙個程式設計的問題,直觀上說如果你不復制第二個練表,不可能讓乙個如你的nochange()函式不去改變第乙個練表值的。原因很簡單,你的nochange()修改了練表節點的值,這個修改假如不影響你原來的練表,自然應該是複製出來的第二個練表。
比如你的程式複製了頭節點,所以頭節點沒受影響,但是沒有複製第二節點,第二個節點的操作當然是原來練表的節點。假如你僅僅想保護以前的練表內容不被修改,建議你考慮c++的資料隱藏,即將資料定義成private並提供讀的介面。假如你需要修改練表的值做一些事情,又希望最後能保留練表的初始狀態,只能或者複製乙個練表,或者儲存練表的初始狀態,最後恢復。
2樓:匿名使用者
malloc後得到的就是乙個指標,你把指標作引數不好麼?
不想傷害原連結串列,那總有乙個連結串列你需要傷害吧。。。
3樓:
這樣只能把第二個節點的n變成4而第乙個節點還是原來的1,那個nochange只能實際上是改變傳入實參的,也就是*l的那份臨時的拷貝的值,原來的第乙個節點的值根本沒動。建議直接把頭結點指標傳進去。
有關連結串列的函式引數問題
4樓:網友
第一種正常一些, 第二種也可行。
連結串列的名字就是連結串列的指標? 誰說的啊。。 當然這也要看你怎麼定義的連結串列了。
第二種對n本身的修改不影響連結串列。
n->next->next
5樓:網友
看你怎麼用,兩個都可以修改,都可以不修改,為了避免歧義,把這個函式宣告為:search_list(const node* n)和search_list(const node n);
呼叫:search_list(&head); // 可能會修改head
search_list(head); // 不會修改。
連結串列的引數問題
6樓:網友
第二個是c++裡的傳引用,呼叫的時候直接傳l就可以了,在clear_link函式里可以直接用。訪問成員,不用->,而且改變的就是原來的l,效果和第乙個相同。
7樓:網友
都可以,但在使用上有差別:
前者:link_list head;
clear_link(&head);
後者link_list head;
clear_link(head);
這兩種用法中,對head的修改都是有效果的。
8樓:網友
status clear_link(link_list *l)//l是指向link_list型別的指標。
l是link_list 型別的引用,這是c++裡面的概念。建議使用這種方式。
第二個式子中的 &l 寫法不是應該在函式呼叫的時候才那樣寫的嗎?
答:呼叫方法:
link_list l;//定義變數。
clear_link(l) ;//給出實參,clear_link()函式中將對l的內容進行修改。
c++建立單向連結串列連結串列頭指標需要使用指標型別的引用引數?
9樓:網友
使用引用型別,可以讓你在函式里面直接操作實參傳過來的那個表頭指標,這樣在函式里建好連結串列後,在函式外面也就得到了連結串列了。
void createlist(node** head)用的時候這樣:
if(*head==null)*head=s;
連結串列是否能作為類的成員變數??
10樓:網友
任何型別都可以做為類的成員變數啊,你完全可以先定義連結串列的結點結構,然後定義乙個類,類中宣告乙個該結點型別的頭指標,然後再定義一些處理連結串列的方法就行了。
哥們,那連結串列作為引數時就是傳引用的是吧?
11樓:網友
不用,直接把首位址傳過去就行了。
打個簡單點的比方。
void fun(char* p)
void main()
同樣的,這個fun函式里我們只需要傳字串的指標,不需要傳字串的指標的引用。sztest的內容會變成"11"
指標是用來定位某一片記憶體位址的,如果在其他函式里對這片記憶體位址中的值進行了改變,那麼在其他地方,找到這片記憶體位址,都能看到變化後的內容。
因此,大部分情況下,傳指標足夠了,當然了也可以直接傳該變數的引用,和傳該變數的位址效果差不多。
「連結串列頭指標在參數列中設定為變參」 是什麼意思啊?
12樓:網友
首先要明確「變參」的概念。
變參——傳遞數值,並且在過程(函式)中對此引數進行的所有改動,都會返回給原始的變數。
比如:要將帶表頭的連結串列l以變參的形式傳遞給函式fun(),可寫成fun(linklist &l).
j**a連結串列變數在類之間如何傳遞?
13樓:網友
這要看你的變數屬於什麼型別的了,可以定義成全域性的。
14樓:匿名使用者
得看看**先了,憑空推論不著的問題。
整個連結串列作為形參 傳遞
15樓:隱安梄
整個連結串列作為形參傳遞 可以只將連結串列的首位址傳遞。如果對連結串列發生了更改,而且保留更改,在更改的函式中,連結串列引數前加 & 例如在本程式中 void nochange(linklist &l);如果不願保留對連結串列的更改,就不要加&,但在函式體中,需再定義乙個指標,用他去執行對連結串列的操作。void nochange(linklist l)
行政不作為可否起訴
成都鄭成陽律師 可訴的行政行為只有具體行政行為。具體行政行為,是指國家行政機關和行政機關工作人員 法律法規授權的組織 行政機關委託的組織 或者個人在行政管理活動中行使行政職權,針對特定的公民 法人或者其他組織,就特定的具體事項,作出的有關該公民 法人或者其他組織權利義務的單方行為。行政訴訟原告,是指...
離婚協議可否作為遺囑?父母離婚協議上說,房屋財產歸父親與我所有。但房產證上面一直是我的父親的名
離婚協議上面如果有該內容並有你父親簽字畫押確認!那麼可以確認有效檔案!但你姐姐們也有權分享你父親的遺產那怕你父親留有遺囑將來房子是你的!法律也不會允許的!除非你姐姐不想跟你掙主動放棄繼承權。如果離婚協議書上真的寫著房產所有權歸你和你父親所得,那你拿離婚協議書去給律師做公證就行了。公證費大概一千五到三...
作為網課老師是何種感受,可否具體說說
有好多人 都會覺得很麻煩,所以不喜歡出去上課,這個時候他們就會選擇網課,這也就是我為什麼要成為網課老師的一個原因。作為一名網課老師和一般在學校裡教課的老師是不一樣的體驗,因為我們在教師節的時候很少會收到同學親自送的禮物。作為一個網課老師想必他的條件也不是非常的鬆,所以說我們應該也嚴格要求自己,自己的...