本實例定義結構體數組存儲 3 人姓名年齡,使用指針遍歷找出年齡最大者並輸出。
man 包含 name[20] 和 age。person[3]。p 指向數組首元素,q 記錄當前最大者地址。p->age > m 更新 m 和 q,然後 p++ 移動到下一個。// Created by www.runoob.com on 15/11/9.
// Copyright © 2015年 菜鳥教程. All rights reserved.
//
#include <stdio.h>
#include <stdlib.h>
struct man {
char name[20];
int age;
} person[3] = {"li", 18, "wang", 19, "sun", 22};
int main() {
struct man *q, *p;
int i, m = 0;
p = person;
for (i = 0; i < 3; i++) {
if (m < p->age) {
m = p->age;
q = p;
}
p++;
}
printf("%s %d\n", q->name, q->age);
return 0;
}
sun 22
原代碼中 q=p++ 寫法有誤(應在更新 q 後再 p++),修正版已在上方展示。指針遍歷結構體數組是 C 語言常用技巧。