定義乙個結構體arr,裡面有三個元素,分別是指向陣列首元素位址的指標pbase,陣列的最大長度len和陣列當前的有效資料個數cnt。除此之外,還有多個對陣列進行多種操作的函式。
#include
#include
#include
const
int length=
100;
//陣列最大長度
struct arr
;void
init_arr
(struct arr *p,
int len)
;//初始化陣列
intis_empty
(struct arr *p)
;//是否為空
intis_full
(struct arr *p)
;//是否已滿
intoppend
(struct arr *p,
int val)
;//新增資料
intinsert
(struct arr *p,
int pos,
int val)
;//在指定位置插入資料
intdelet
(struct arr *p,
int pos)
;//刪除指定位置的資料
intinversion
(struct arr *p)
;//倒置
intsort
(struct arr *p)
;//氣泡排序
void
show
(struct arr *p)
;//列印陣列元素
intmain()
show
(&ar)
;printf
("輸入要插入的資料和位置:");
scanf
("%d %d"
,&val,
&pos);if
(insert
(&ar,pos,val)
)show
(&ar)
;else
printf
("元素插入失敗!\n");
printf
("輸入需要刪除的資料的位置: ");
scanf
("%d"
,&pos);if
(delet
(&ar,pos)
)show
(&ar)
;else
printf
("元素刪除失敗!\n");
//元素倒置if(
inversion
(&ar)
)else
printf
("元素倒置失敗!\n");
if(sort
(&ar)
)else
printf
("元素排序失敗\n");
return0;
}void
init_arr
(struct arr *pa,
int len)
else
return;}
intis_empty
(struct arr *p)
intis_full
(struct arr *p)
int(
struct arr *p,
int val)
return0;
}int
insert
(struct arr *p,
int pos,
int val)
intdelet
(struct arr *p,
int pos)
intinversion
(struct arr *p)
return1;
}int
sort
(struct arr *p)}}
return1;
}void
show
(struct arr *p)
}
結構體 結構體陣列
void test 函式遞迴呼叫 允許函式體裡再次呼叫函式本身 使用遞迴一定要有出口 long fact int n return n fact n 1 定義乙個新的資料型別 struct mypoint 結構體型別所占用的記憶體空間是最大資料型別的整數倍。因為結構體型別的變數在分配記憶體時有記憶體...
結構體 結構體陣列
struct 結構體型別名 型別名 成員名 型別名 成員名 先宣告結構體型別,再定義結構體變數名 宣告結構體型別,不分配空間 定義結構體型別變數,就要分配記憶體空間 作 者 hh 完成日期 2018年8月15日 版本號 v1.0 問題描述 結構體巢狀 賦值 輸出 輸入描述 程式輸出 include ...
結構體儲存
struct a sizeof struct a struct b sizeof struct b struct c sizeof struct c 和老師交流時,老師給我出了幾道c c 細節方面的問題,其中遇到了一道關於結構體在記憶體儲存的問題,老師先後變換了這幾種種情況,最後一種情況還是沒有回答...