結構體儲存陣列

2021-10-10 04:51:57 字數 2046 閱讀 4282

定義乙個結構體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 細節方面的問題,其中遇到了一道關於結構體在記憶體儲存的問題,老師先後變換了這幾種種情況,最後一種情況還是沒有回答...