#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 关注
- 128 浏览
添加回答
举报
0/150
提交
取消