數(shù)據(jù)結(jié)構(gòu)向上取整符號 數(shù)據(jù)結(jié)構(gòu),void split中有的用*有的用*&,為什么,什么時(shí)候才要多加這個(gè)取址符號&?
數(shù)據(jù)結(jié)構(gòu),void split中有的用*有的用*&,為什么,什么時(shí)候才要多加這個(gè)取址符號&?這不是地址,而是對C的引用,C也是別名。在需要修改函數(shù)體中的指針類型參數(shù)時(shí)使用。如果只使用C語言,則需要使用
數(shù)據(jù)結(jié)構(gòu),void split中有的用*有的用*&,為什么,什么時(shí)候才要多加這個(gè)取址符號&?
這不是地址,而是對C的引用,C也是別名。在需要修改函數(shù)體中的指針類型參數(shù)時(shí)使用。如果只使用C語言,則需要使用指針的指針(雙指針)作為參數(shù)。Lklist*&hc表示對Lklist指針類型HC的引用
~]&C中的引用符號用作函數(shù)參數(shù),表示它是傳遞的實(shí)際參數(shù)(即實(shí)際參數(shù)的別名)的引用。這樣,對函數(shù)中形式參數(shù)的操作將影響實(shí)際參數(shù)。通常通過函數(shù)來改變實(shí)際參數(shù)的值。如果沒有&,則只傳遞參數(shù)的副本,并且對函數(shù)中參數(shù)的操作不會影響參數(shù)。與示例一樣,對于L,當(dāng)它涉及到通過函數(shù)修改它時(shí)(例如在表中插入listinsert或刪除ListDelete元素),在L之前有&;當(dāng)它不涉及修改變量時(shí)(例如在表中獲取priorelem、GetElem元素),在L之前沒有&;返回到示例:第一個(gè)使用&使用pre_ue保存order表中元素的值(函數(shù)執(zhí)行后的pre)ue在函數(shù)中的值被保存,以便于后續(xù)操作訪問該值。在第二個(gè)函數(shù)中,&的函數(shù)與第一個(gè)函數(shù)相同。listinsert函數(shù)在表中插入元素E,因此只需插入其副本,就不需要添加&。ListDelete的功能是刪除表中的元素,&用于獲取被刪除元素的值。如果沒有&,則函數(shù)執(zhí)行后的E值與ListDelete之前的值相同,因此使用&。