#include "stdafx.h"void output(struct person *p){printf("Name:%s\nAge:%d\nNumber:%s\n",p->name,p->age,p->number);}int _tmain(int argc, _TCHAR* argv[]){struct person{char name[20];int age;char number[20];}*ptr,per[3]={{"LiLing",18,"110"},{"HuangQi",22,"250"},{"ShaMan",30,"360"}};ptr=per;for(;ptr<per+3;ptr++){output(ptr);}return 0;}
3 回答

拉丁的傳說
TA貢獻1789條經驗 獲得超8個贊
#include <stdio.h>
struct person
{
char name[20];
int age;
char number[20];
}*ptr,per[3]={{"LiLing",18,"110"},{"HuangQi",22,"250"},{"ShaMan",30,"360"}};
void output(struct person *p)
{
printf("Name:%s\nAge:%d\nNumber:%s\n",p->name,p->age,p->number);
}
int main(int argc, char* argv[])
{
ptr=per;
for(;ptr<per+3;ptr++)
{
output(ptr);
}
return 0;
}
將結構體的定義和賦值操作都放到函數外邊即可。

慕妹3242003
TA貢獻1824條經驗 獲得超6個贊
這是關于名字可見性的問題,在一個模塊單元定義的函數,變量只能在該模塊內被看到,這樣做的目的在于滿足程序的接口最小化的原則。
你可以換一下編譯器試試看,用vc試一下
- 3 回答
- 0 關注
- 151 瀏覽
添加回答
舉報
0/150
提交
取消