关于指针变量的问题求助
题目是这样的:建立动态数组,输入5个学生的成绩,另外用一个函数检查其中有无低于60分的,输出不合格成绩答案是这样的:
#include <stdio.h>
#include <stdlib.h>
int main()
{
void check(int *);
int *p;
int i;
p = (int *)malloc(sizeof(int)*5);
for(i=0;i<5;i++)
scanf("%d",p+i);
check(p);
return 0;
}
void check(int *p)
{
int i;
printf("They are fail:");
for(i=0;i<5;i++)
if(p<60) printf("%d ",p);
printf("\n");
}
但是我自己写的时候20行的时候写成了:
if(*(p)<60) printf("%d ",*(p));
我的理解是p是定义为int *的指针变量,那么p是表示的地址啊,应该p要解引用才能跟其具体的值进行比较吧。看了答案怎么都不能理解
新人小白学指针学的有点晕晕乎乎的了{:5_96:}想问下大家为什么这句是这样写的啊~ 两种方法都是解引用 , *p=p; *(p+1)=p;依次类推 谢谢楼上两位~是我解引用的格式写错了{:5_92:} {:10_249:} 看到已经解决口哈哈,加油↖(^ω^)↗
页:
[1]