C 语言11 函数传参与递归
函数的参数传递
1.值传递,实参数通过赋值运算符把参数内容赋值给形参的形式,形参是实参的一个副本。数据内容是相同的。实参的内存空间和形参的是独立的。
值传递只能读取实参的值,不能进行修改。
2.地址传递。实参传递变量的内存地址值。即可以读实参的数据的值,也可以修改。
一维整形数组传参 需要传size
#include<stdio.h> 9 //逆序 10 int revert_array(int a[],int size) 11 { 12 int i = 0; 13 for(i=0;i<size/2;i++) 14 { 15 int t = a[i]; 16 a[i] = a[size-1-i]; 17 a[size-1-i] = t; 18 } 19 return 0; 20 } 21 //冒泡 22 int bubble_sort(int array[],int size) 23 { 24 int i=0,j=0; 25 for(i=size-1;i>0;i--) 26 { 27 for(j=0;j<i;j++) 29 if(a[j]>a[j+1]) 30 { 31 int t = a[j]; 32 a[j] = a[j+1]; 33 a[j+1] = t; 34 } 35 } 36 } 37 return 0; 38 } 39 int select_sort(int array[],int size) 40 { 41 int i=0,j=0; 42 for(i=0;i<size-1;i++) 43 { 44 for(j=i+1;j<size-1;j++) 45 { 46 if(a[i]>a[j]) 47 { 48 int t = a[i]; 49 a[i] = a[j]; 50 a[j] = t; 51 } 52 } 53 } 54 } 55 int main() 56 { 57 srand(time(NULL)); 58 int size = sizeof(array)/sizeof(array[0]); 59 int array[10]={0}; }> 60 61 revert_array(a[],size); 62 return 0; ]> 63 }一维字符数组传参 不用传size
函数的递归
在函数内部,自己调用自己的函数调用被称为函数的递归
属于循环的一种表现形式,区别是会使用栈空间。
需要设置合理的退出条件;递归的层次不要太深,会消耗大量的内存,可能会导致程序崩溃。
