定义指针时,最好初始化!!
题目:找到年龄最大的人,并输出。请找出程序中有什么问题。
#include <stdio.h>
#include <stdlib.h>
struct man{
char name[20];
int age;
}person1 ={"lixiaolong",32};
int main()
{
struct man *p;//结构体
p = &person1;
printf("%s %d\n",p->name,p->age);
struct man person[3] = {"li",18,"wang",25,"sun",22};//结构体数组
struct man *q=person;
int max = 0;
struct man *pmax=NULL; //指针最好赋初值,否则为野指针
for (int i=0;i<3;i++){
if((q+i)->age > max){
max=(q+i)->age;
pmax=q+i;
}
printf("%s %d\n",(q+i)->name,(q+i)->age);
}
printf("%s %d\n",pmax->name,pmax->age);
char *str=(char *)malloc(sizeof(char)*30);
// gets(str);//gets()不安全,因为它不会判断str所指向的空间的大小是否能容纳输入的东西
// printf("%s\n",str);
fgets(str,30,stdin);//于是有了fgets()
printf("%s\n",str);
}
lixiaolong 32
li 18
wang 25
sun 22
wang 25
sdfgfhdssafdghgsftsaDfdhg
sdfgfhdssafdghgsftsaDfdhg