#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 ...