函数传值
如果函数只是传入
变量值
(不是数组),那么传入变量值
的作用域
只有该函数内部
。
#include <stdio.h> void swap(int x, int y); void swap(int x, int y){ int tmp; // 存储临时变量 printf("swap 传入值交换前 x = %d , y = %d \n", x, y); tmp = x; x = y; y = tmp; printf("swap 传入值交换后 x = %d , y = %d \n", x, y); } int main(){ int x = 111,y = 222; printf("main 传入指针互换前 x = %d , y = %d \n", x, y); swap(x,y); printf("main 传入指针互换后 x = %d , y = %d \n", x, y); return 0; }
函数传址(指针)
函数如果传入
指针(地址)
,在函数内部改变指针
,外部会跟着改变。
#include <stdio.h> void swapzz(int *x, int *y); /* * 交换数字 */ void swapzz(int *x, int *y) { printf("swap 传入指针交换前 x = %d , y = %d \n", *x, *y); int tmp; tmp = *x; *x = *y; *y = tmp; printf("swap 传入指针交换后 x = %d , y = %d \n", *x, *y); } int main() { int x = 111, y = 222; printf("main 传入指针互换前 x = %d , y = %d \n", x, y); swapzz(&x,&y); printf("main 传入指针互换后 x = %d , y = %d \n", x, y); return 0; }
函数传入数组
函数传入
数组
,本质是传入一个指针
。
#include <stdio.h> void get_arr(int arr[3]); void get_arr(int arr[3]){ int i; arr[1] = 520; printf("get_arr 方法内 "); for (i = 0;i < 3;i++){ printf(" %d ",arr[i]); }; } int main(){ int arr[3] = {1,2,3}; get_arr(arr); int i; printf(" \n main 方法内 "); for (i = 0;i < 3;i++){ printf("%d ",arr[i]); } return 0; }
下一篇
【C语言】函数
【C语言】函数
版权声明:《 【C语言】函数 & 指针 》为明非原创文章,转载请注明出处!
最后编辑:2020-11-20 11:11:01