程序传递参数的方法有多种,以下是一些常见的方法:
程序执行时传参
方法:通过main函数的两个参数argc和argv实现。argc为参数的个数,argv是参数列表。
示例:
```c
include int main(int argc, char argv) { int i = 0; for(i = 0; i < argc; i++) { printf("argv[%d] = %s\n", i, argv[i]); } return 0; } ``` 运行结果 ``` ./test hello world argv = ./test argv = hello argv = world ``` 方法:设置环境变量,在程序中通过main函数的第三个参数获取环境变量。 示例: ```c include include int main(int argc, char argv, char envp) { char *env = getenv("TEST_ENV"); if (env) { printf("环境变量 TEST_ENV 的值为: %s\n", env); } else { printf("环境变量 TEST_ENV 未设置\n"); } return 0; } ``` 设置环境变量 ```sh export TEST_ENV=helloworld ``` 运行结果: ``` 环境变量 TEST_ENV 的值为: helloworld ``` 方法:main方法的参数是一个String类型的数组,数组中的每个元素就是一个命令行参数。 示例: ```java public class CommandLineArgsExample { public static void main(String[] args) { System.out.println("接收到的命令行参数个数为: " + args.length); for (int i = 0; i < args.length; i++) { System.out.println("参数 " + (i + 1) + ": " + args[i]); } } } ``` 运行结果: ``` 接收到的命令行参数个数为: 3 参数 1: arg1 参数 2: arg2 参数 3: arg3 ``` 值传递:将参数的值复制给形参,函数内对形参的修改不会影响实参。 引用传递:通过传递参数的地址,函数内部可以直接访问和修改实参。 指针传递:将参数的指针作为形参传递给函数,函数通过指针间接访问和修改实参。 数组传递:将数组作为参数传递给函数,函数内部可以直接访问和修改数组元素的值。 结构体传递:将结构体作为参数传递给函数,函数内部可以直接访问和修改结构体成员的值。 位置匹配:默认通过位置匹配变量名,按照位置进行值传递。 关键字参数:允许通过变量名进行匹配,而不是通过位置。 示例: ```python def my_print(a, b): print(a, b) my_print(3, 4) my_print(4, 3) ``` 运行结果: ``` 3 4 4 3 ``` 构造函数传递:Python线程的构造函数可以接收多个参数,将需要传递的参数作为target函数的参数进行传递。 继承Thread类:创建自定义的线程类,在类中重写run方法,将需要传递的参数作为类属性进行传递。 示例:通过环境变量传参
Java中通过main方法传参
C语言参数传递方式
Python中参数传递
线程参数传递