結構體和連結串列中陣列和指標不同表達形式
int getMaxLengthOfItems(MEC_MENU *menu,int count){ int i; int maxLen = strlen(menu[0].item); for(i = 0; i < count; i++){ // if(strlen(menu[i].item) > (unsigned int)maxLen){ //計算每個item的長度並找出其最大長度 // maxLen = strlen(menu[i].item); if(strlen((menu+i)->item return maxLen; } |
void showStudentsInformation(struct STI *s, int Cnt) { int i; printf("\n當前學生資訊共%d人,資訊分別如下:\n", Cnt); printf("%8s %20s %4s %4s %4s\n", "學號", "姓名", "性別", "年紀", "分數"); //對齊形式 for(i = 0; i < Cnt; i++) { printf("%8s %20s %4s %4d %.1lf\n", (s+i)->id, (s+i)->name, ((s+i)->sex //printf("%8s %20s %4s %4d %.1lf\n", s[i].id, s[i].name, (s[i].sex == 'm' ? "男" : "女"), s[i].age, s[i].score); //老師正確形式 //printf("%8s %20s %4s %4d %.1lf\n", s->id, s->name, (s->sex == 'm' ? "男" : "女"), s->age, s->score); //自己方法錯誤形式 //*s = s[i++]; //錯誤原因:指標一直指向同一個陣列,故輸出只能是同一個陣列,沒有進行指標的移位 //和老師方法的區別:老師是用陣列表示的,而自己是用指標方式表示的 } } |