總的來說指標操作可以有3種,一種返回頭指標,一種傳入頭指標,一種傳入引用(c++)。
typedef struct lnode
lnode,*linklist;
傳入頭指標(確切是頭指標的指標,因為要更改原頭指標;如果只傳入頭指標的話,由於c語言函式形參是乙個副本,那樣就更改不了頭指標了)
void createlist_l(linklist *l,int n)
else
}}
返回頭指標(c語言最常用的方法)
linklist create() //鍊錶建立
else
p2->next=p1;
p2=p1;
p1=(linklist)malloc(sizeof(lnode));
cin>>p1->num;
n++;
}p2->next=null;
return head;
}
傳入引用(c++獨有)
void createlist_l(linklist &l,int n)//建立鍊錶
else
}}
我把剩餘的引用型所有操作列出來
void listinsert_l(linklist &l,int i,elemtype e)//插入元素
if(!p||j>i-1) printf("error");
s=(linklist)malloc(sizeof(lnode));
s->data=e;s->next=p->next;
p->next=s;
}void listdelete_l(linklist &l,int i,elemtype &e)//刪除元素
if(!p->next||ji-1) printf("error");
q=p->next;p->next=q->next;
e=q->data;free(q);
}void listlength_l(linklist l,int &n)//求鍊錶長度
void search_l(linklist l,int i)//根據位置尋找元素
{elemtype data;
linklist p;
p=l->next;
int j;
for(j=0;jnext;
data=p->data;
cout<<"查詢的元素值為:"next) coutcout<
拿這三種方式來說,個人感覺如果是c環境下用傳入頭指標的方式好(比返回值複雜一些),c++傳入引用方式好。也就是說不用返回頭指標方式。
C指標操作(一)
1.指標的型別 2.指標所指向的型別 3.指標的值 或者叫指標所指向的記憶體區或位址 4.指標本身所佔據的記憶體區主要注意運算子優先順序 1.指標的型別 從語法的角度看,你只要把指標聲語句裡的指標名字去掉,剩下的部分就是這個指標的型別。這是指標本身所具有的型別。讓我們看看例一中各個指標的型別 1 i...
C指標操作(二)
include include using namespace std int main char a 20 you are a girl char p a char ptr p printf p d n p printf p d n p printf p c n p printf ptr d n ...
C與C 基礎 陣列指標與指標陣列
c與c 基礎 陣列指標與指標陣列 c與c 基礎 結構體struct和typedef struct 區別 c與c 基礎 函式 c與c 基礎 記憶體管理 陣列指標也成為行指標,陣列指標,就是乙個指標,指向乙個一維陣列。定義 int p n 優先順序高,首先說明p是乙個指標,指向乙個整型的一維陣列,這個一...