首页 > 解决方案 > 如何使用地址在函数中创建新变量

问题描述

当我使用主数组的基地址创建一个新数组时,我会这样写:

main()
{
    int a[]={0,1,2,3,4,5,6,7,8,9};
    display(a);
}

display(int anew[])
{
    int i;
    for(i=0;i<10;i++)
        printf("%d ",anew[i]);
}

为什么在尝试使用这样的地址创建新的 int 变量时我不能做同样的事情?

main()
{
    int a=7;
    display(&a);
}

display(int b)
{
    printf("%d ",b);
}

标签: cfunctionvariables

解决方案


因为display(int anew[])与 相同display(int *anew)但又display(int *b)不同display(int b)。在 C 中,当传入函数时,数组“退化”为指针(指向第一个元素)。整数不会发生这样的事情(只有数组和函数)。


推荐阅读