whyyouhitme_ 2018-04-23 20:09 采纳率: 22.2%
浏览 706
已采纳

把外部变量局部于main函数内遇到了问题

当被调用函数用局部于main函数内的变量作为参数时。出现了问题。因为被调用函数的作用是改变参数的值,所以考虑用指针作为参数。但是struct part q【】(之前是外部变量)是一个存放结构的数组。(结构包含商品的编号,名称,数量三项元素)所以,指向数组元素(结构)的指针怎么声明?当我想要逐项添加或修改结构的三个内容时,又改怎么写?以下是“插入商品”的函数。
void insert(struct part *q,int n)//两个参数是被要求局部于main函数中的外部变量
{
int i=0,part_number;
if(n==MAX_PARTS){
printf("Database is full;can't add more parts.\n");
return;
}
printf("Enter part number:");
scanf("%d",&part_number);
if(find_part(part_number,q,n)>=0){
printf("Part already exists.\n");
return;
}
*q.number=part_number;
printf("Enter part name:");
read_line(*q.name,NAME_LEN);
printf("Enter quantity on hand:");
scanf("%d",*q.on_hand);
n++;
}

*q.number和q[n].number的写法都不对。

  • 写回答

9条回答 默认 最新

  • devmiao 2018-04-23 20:29
    关注

    #include

    typedef struct
    {
    int x;
    } *A;

    void foo(A* a)
    {
    printf("%d", a[0]->x);
    }

    int main()
    {
    A a[2];
    a[0]->x = 123;
    foo(a);
    }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(8条)
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部