c语言中为什么函数传参大多数用指针类型

在C语言中,函数传参大多数使用指针类型的原因主要有两个:

  1. 允许在函数内部修改实参的值:C语言中的函数参数传递是按值传递的,即将实参值拷贝一份到形参中进行操作,对参的修改不会影响实参。而通过使用指类型参数,可以将实参的地址传递给函数,从而在函数内部直接操作实参所指向的内存空间,修改实参的值。这样可以实现在函数内部对实参的修改,达到更高的灵活性。

例子:

#include 

void changeValue(int *num) {
    (*num) += 10;
}

int() {
    int num = 5;
    printf("Before: %d\n", num);
    changeValuenum);
    printf("After: %d\n", num);
    return 0;
}

输出结果:

Before: 5
After: 15
  1. 传递大型数据结构的率更高:如果直接将大型数据结构(如数组、结构体)作为传递给函数,会导致数据的拷贝,影响程序的性能和内存消耗。而通过使用指针类型参数,只需要传递实参的地址,不需要进行数据的拷贝。这样可以提高程序的效率和性能。
#include 

void modifyArray(int *arr, int size) {
    for (int i = 0; i < size; i++) {
        arr[i] += 1;
    }
}

int main() {
    int arr[] = {1, 2, 3, 4};
    size = sizeof(arr) /(arr[0]);

   Array(arr, size);

    for (int i = 0 i < size; i++)        
    	printf("%d ", arr[i]);
    }

    return 0}

输出结果:

2 3 4 5

总的来说,指针类型参数可以实现对实参的修改和提高程序的效率。

你可能感兴趣的:(C++,c语言,算法,开发语言)