c语言怎么返回多个值

寻技术 C/C++编程 前天 09:36 10

C语言本身不支持直接返回多个值,但可以通过以下几种方法实现多个值的返回:

  1. 结构体:可以定义一个结构体,将多个值作为结构体的成员,然后将整个结构体作为函数的返回值。
#include <stdio.h> struct MultipleValues { int value1; int value2; }; struct MultipleValues getValues() { struct MultipleValues values; values.value1 = 10; values.value2 = 20; return values; } int main() { struct MultipleValues result = getValues(); printf("Value 1: %d\nValue 2: %d\n", result.value1, result.value2); return 0; }
  1. 指针参数:可以通过传递指针参数,在函数内部修改指针所指向的变量的值,从而实现多个值的返回。
#include <stdio.h> void getValues(int* value1, int* value2) { *value1 = 10; *value2 = 20; } int main() { int result1, result2; getValues(&result1, &result2); printf("Value 1: %d\nValue 2: %d\n", result1, result2); return 0; }
  1. 全局变量:可以定义全局变量,在函数内部修改全局变量的值,从而实现多个值的返回。
#include <stdio.h> int value1, value2; void getValues() { value1 = 10; value2 = 20; } int main() { getValues(); printf("Value 1: %d\nValue 2: %d\n", value1, value2); return 0; }

需要注意的是,使用指针参数或全局变量时要确保变量的作用范围和生命周期,以避免出现意外的问题。而使用结构体可以更好地封装多个值,提高代码的可读性和可维护性。

关闭

用微信“扫一扫”