fisherman 发表于 2011-3-11 22:36:22

C语言中的小小“指针”出问题了!

#include <stdlib.h>
#include <stdio.h>
void writeData();

void findValue(int *result,int *amount)
{
        int i;
        *amount = 0;
        for(i=1; i<1000; i++)
        {
                if((i%7==0 && i%11!=0) || (i%7!=0 && i%11==0))
                {
                        result[*amount] = i;
                        (*amount)++;
                }
        }
       
}

void main()
{
        int result,amount,k;
        system("CLS");
        findValue(result,&amount);
        printf("amount=%d\n",amount);
        for(k=0;k<amount;k++)
        if((k+1) %10 ==0)
        {
                printf("%5d",result);
                printf("\n");
        }
        else printf("%5d",result);
        writeData();
}

void writeData()
{
        int result,amount,k;
        FILE *fp;
        fp=fopen("OUT.DAT","w");
        findValue(result,&amount);
        for(k=0;k<amount;k++)
        if((k+1) %10 ==0)
        {
                fprintf(fp,"%5d",result);
                fprintf(fp,"\n");
        }
        elsefprintf(fp,"%5d",result);
        fclose(fp);
}
这里面的
result[*amount] = i;
(在第九行!)
问什么不是
*result[*amount] = i;
这样啊!
希望哪位朋友解答解答!

soldier 发表于 2011-4-21 18:25:26

result[], 是根据下标找到该下标的地址, result代表的是首地址,根据类型和下标将首地址偏移, 如果是*result[],*result并不是一个地址, 他是一个数值,数值不能做索引,如果result是二级指针,那么可以*result[],否则编译器回报错。

鱼C工作室.YCGZS 发表于 2015-12-13 12:02:03

:smile:smile:smile
页: [1]
查看完整版本: C语言中的小小“指针”出问题了!