豌图酱 发表于 2017-8-9 17:36:59

关于指针变量的问题求助

题目是这样的:建立动态数组,输入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:}想问下大家为什么这句是这样写的啊~

Krant5 发表于 2017-8-9 18:37:17

两种方法都是解引用 , *p=p; *(p+1)=p;依次类推

ba21 发表于 2017-8-9 20:57:23

豌图酱 发表于 2017-8-9 21:05:01

谢谢楼上两位~是我解引用的格式写错了{:5_92:}

曹子孝 发表于 2017-8-10 11:59:54

{:10_249:}

cyndiwants 发表于 2017-9-17 15:53:12

看到已经解决口哈哈,加油↖(^ω^)↗
页: [1]
查看完整版本: 关于指针变量的问题求助