c语言函数能改变指针吗,如何修改传递给C中函数的指针?
如果要這樣做,則需要傳入指向指針的指針。void?barPush(BarList?**?list,Bar?*?bar){
if?(list?==?NULL)?return;?//?need?to?pass?in?the?pointer?to?your?pointer?to?your?list.
//?if?there?is?no?move?to?add,?then?we?are?done
if?(bar?==?NULL)?return;
//?allocate?space?for?the?new?node
BarList?*?newNode?=?malloc(sizeof(BarList));
//?assign?the?right?values
newNode->val?=?bar;
newNode->nextBar?=?*list;
//?and?set?the?contents?of?the?pointer?to?the?pointer?to?the?head?of?the?list
//?(ie:?the?pointer?the?the?head?of?the?list)?to?the?new?node.
*list?=?newNode;?}
然后像這樣使用它:BarList?*?l;l?=?EMPTY_LIST;barPush(&l,&b1);?//?b1?and?b2?are?just?Bar'sbarPush(&l,&b2);
喬納森·萊弗勒(JonathanLeffler)建議將評論中的新頭目返回:BarList?*barPush(BarList?*list,Bar?*bar){
//?if?there?is?no?move?to?add,?then?we?are?done?-?return?unmodified?list.
if?(bar?==?NULL)?return?list;
//?allocate?space?for?the?new?node
BarList?*?newNode?=?malloc(sizeof(BarList));
//?assign?the?right?values
newNode->val?=?bar;
newNode->nextBar?=?list;
//?return?the?new?head?of?the?list.
return?newNode;?}
用法如下:BarList?*?l;l?=?EMPTY_LIST;l?=?barPush(l,&b1);?//?b1?and?b2?are?just?Bar'sl?=?barPush(l,&b2);
總結
以上是生活随笔為你收集整理的c语言函数能改变指针吗,如何修改传递给C中函数的指针?的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 知识图谱论文阅读(二十)【WWW2020
- 下一篇: linux 串口工具_会C++就能开发L
