c语言 10-4

函数间数组的传递,是以指向第一个元素的指针的形式进行的。 在被调用的函数中作为指针接收的数组, 实际上就是调用方传递的数组。

Type*型指针p指向Type型数组a的起始元素a[0]时, 指针p的行为就和数组a本身一样。

值:    a[i] = *(a + i) = *(p + i) = p[i];

指针: &a[i] = a + i = p + i = &p[i]; 

1、

#include <stdio.h>

void set(int *x, int n)
{
    int i;
    for(i = 0; i < n; i++)
    {
        x[i] = i;    
    }    
}

int main(void)
{
    int i;
    int a[5];
    
    set(a, 5);
    
    for(i = 0; i < 5; i++)
    {
        printf("a[%d] = %d
", i, a[i]);
    }
}

2、

#include <stdio.h>

void set_idx(int *v, int n)
{
    int i;
    for(i = 0; i < n; i++)
    {
        *(v + i) = i;
    }
}

int main(void)
{
    int i, a[5];
    
    set_idx(a, 5);
    
    for(i = 0; i < 5; i++)
    {
        printf("a[%d] = %d
", i, a[i]);
    }
    
    return 0;
}

原文地址:https://www.cnblogs.com/liujiaxin2018/p/14827020.html