鱼C论坛

 找回密码
 立即注册
查看: 2746|回复: 2

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

[复制链接]
发表于 2011-3-11 22:36:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#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[1000],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[k]);
                printf("\n");
        }
        else printf("%5d",result[k]);
        writeData();
}

void writeData()
{
        int result[1000],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[k]);
                fprintf(fp,"\n");
        }
        else  fprintf(fp,"%5d",result[k]);
        fclose(fp);
}
这里面的
result[*amount] = i;
(在第九行!)
问什么不是
*result[*amount] = i;
这样啊!  
希望哪位朋友解答解答!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-4-21 18:25:26 | 显示全部楼层
result[], 是根据下标找到该下标的地址, result代表的是首地址,根据类型和下标将首地址偏移, 如果是*result[],*result并不是一个地址, 他是一个数值,数值不能做索引,如果result是二级指针,那么可以*result[],否则编译器回报错。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2015-12-13 12:02:03 | 显示全部楼层
:smile:smile:smile
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-26 16:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表