c语言中函数的传递和const类型的修饰符

c语言中函数的传递和const类型的修饰符。

c语言中函数的传递:对接受到的数组元素进行的修改,元素值的变化也会反映到再次调用时传入的数组中。

const类型的修饰符:在给函数传递数组时,如果担心传递给函数的数组的元素会被修改,只要在声明形参的时候加上被称为const的类型修饰符就可以了。

如果只是引用所接收的数组的元素值而不改写的话, 在声明接收数组的形参时就应该加上const,这样函数调用方就可以放心地调用函数了。

#include <stdio.h>

void func1(int x[], int y)   ## 在接收的数组的形参前未加 const,接收的数组可以修改。
{
    int i;
    for (i = 0; i < y; i++)
        x[i] = 0;
}

void func2(const int x[], int y)   ## 在接收的数组的形参前加 const, 接收的数组不可以修改。
{
    int i;
    printf("{");
    for (i = 0; i < y; i++)
    {
        printf(" %d ", x[i]);
    }
    printf("}");
}

int main(void)
{
    int i;
    int arry1[] = {1, 2, 3, 4, 5};
    int arry2[] = {3, 4, 8};
    printf("arry1 : "); func2(arry1, 5); putchar('\n');
    printf("arry2 : "); func2(arry2, 3); putchar('\n');
    func1(arry1, 5);
    func1(arry2, 3);
    putchar('\n');
    puts("modified!!!");
    printf("arry1 : "); func2(arry1, 5); putchar('\n');
    printf("arry2 : "); func2(arry2, 3); putchar('\n');
    return 0;
}

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