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;
}