恳请各位高手指点.....
建立动态数组,输入5个学生的成绩,另外用一个函数检查其中有无低于60分的,输出不合格的成绩。#include <stdio.h>
#include <stdlib.h> /*程序中用了malloc函数,应包含stdlib.h */
void main ()
{void check (int *); /*函数声明*/
int *p1,i; /*p1是int型指针*/
void *p2; /*p2是void型指针*/
p2=malloc(5*sizeof(int)); /*开辟动态自由内存区,将起始地址存放在p2中*/
p1=(int *)p2; /*将地址转换成int型的指针*/
for(i=0;i<5;i++)
scanf("%d",p1+i); /*输入5个学生的成绩*/
check(p1); /*调用check函数*/
free(p2); /*释放所占用的自由动态去*/
}
void check(int *p) /*定义check函数,形参是int型指针*/
{int i;
printf("They are fail:");
for(i=0;i<5;i++)
if(p[i]<60) printf("%d",p[i]); /*输入不合格的成绩*/
printf("\n");
}
第17行“if(p[i]<60) printf("%d",p[i]);”中的p[i]不是地址吗?怎样可以和60比较的?怎么不用*p[i]呢?