指標 陣列 結構體 練習

2021-09-01 17:57:23 字數 1698 閱讀 1519

#include #include #include #include //簡單陣列儲存 gcc下執行

2013-6-8

typedef struct arr arr;

bool init(arr *p,int n); //初始儲存,p要初始物件的位址,n初始的長度

void printarr(arr *p); //列印陣列

bool isfull(arr *p); //陣列是否有足夠的空間

void reverse(arr *p); //反轉陣列

bool delete(arr *p,int val); //刪除陣列中第乙個出現的指定元素

void sort(arr *p); //排序

bool insert(arr *p,int pos,int val); //插入資料

bool isempty(arr *p); //判斷陣列是否為空

int main()

//初始陣列

bool init(arr * p,int n)else

} return false;

}//判斷陣列是否已滿

bool isfull(arr *p)

//有效元素個數大於等於陣列長度,陣列已滿

if(p->len<=p->index)

return true;

else

return false;

}//增加

if(isfull(p))

p->data[p->index] = val;

p->index++;

return true;

}//列印

void printarr(arr *p)

printf("\n");

}//是否為空

bool isempty(arr *p)

//插入資料

bool insert(arr *p,int pos,int val)

if(isempty(p))

if(p->len-1index)

//每個元素向後移1位

for(i=p->len-1;i>=pos;i--)

//插入值

p->data[pos-1]=val;

p->index++;

return true;

}//刪除陣列中第乙個出現的指定的元素

bool delete(arr *p,int val)

//找到第乙個出現的指定元素

for(i=0;ilen&&!(p->data[i]==val);i++); //標記: !的優先順序比==高

//每個元素向前移動1位

for(;ilen-1;i++)

p->index--;

p->len--;

return true;

}//反轉陣列

void reverse(arr *p)

int i=0,j=p->len-1,m=(p->len)/2,t;

while(0 < m)

}//選擇排序

陣列指標 結構體指標

指向指標結構體 include include int main struct student stu 1 定義struct student型別的變數stu1 struct student p 定義指向struct student型別資料的指標變數p p stu 1 p指向stu1 stu 1.nu...

結構體指標陣列

struct h a 100 b,c 3 d a是乙個結構體陣列,已經有100個節點了。不需要再分配空間了。b是乙個結構體變數,也已經有空間了,就和int b 已經有空間了一樣。c是乙個指標陣列,c也已經有空間了,有3個元素,但是這三個元素是還沒有分配空間的指標,所以要用malloc分別為他們分配記...

結構體 指標 陣列

若我們用 0x9999 來標記記憶體位址,則 0x9999 表示該位址記憶體中儲存的數值 變數int a a 0x9999 1 a 0x9999 指標int a a 0x8888 0x9999 a 0x8888 0x9999 1 a 0x8888 結構體變數 struct mystruct s s ...