|
在C語(yǔ)言中,函數(shù)只能返回一個(gè)值。但是你可以通過使用指針或者結(jié)構(gòu)體來實(shí)現(xiàn)返回多個(gè)值的效果。
1.使用指針:你可以將要返回的多個(gè)值通過函數(shù)參數(shù)中的指針傳遞給調(diào)用者,然后在函數(shù)內(nèi)部對(duì)指針進(jìn)行賦值。調(diào)用者在函數(shù)返回后,可以通過指針獲取這些值。
void getTemperatureAndHumidity(float* temperature, float* humidity) {
// 在函數(shù)內(nèi)部獲取溫度和濕度的值
float temp = 25.0;
float hum = 60.0;
// 通過指針參數(shù)返回多個(gè)值
*temperature = temp;
*humidity = hum;
}
int main() {
float temp, hum;
// 調(diào)用函數(shù)獲取溫度和濕度
getTemperatureAndHumidity(&temp, &hum);
// 在調(diào)用者中使用獲取到的值
printf("Temperature: %.2f°C\n", temp);
printf("Humidity: %.2f%%\n", hum);
return 0;
}
2.使用結(jié)構(gòu)體:你可以定義一個(gè)結(jié)構(gòu)體,其中包含要返回的多個(gè)值。函數(shù)可以返回該結(jié)構(gòu)體類型的對(duì)象,調(diào)用者在接收返回值后可以直接訪問結(jié)構(gòu)體中的成員變量。
typedef struct {
float temperature;
float humidity;
} WeatherData;
WeatherData getTemperatureAndHumidity() {
WeatherData data;
// 在函數(shù)內(nèi)部獲取溫度和濕度的值
float temp = 25.0;
float hum = 60.0;
// 將獲取到的值賦給結(jié)構(gòu)體的成員變量
data.temperature = temp;
data.humidity = hum;
return data;
}
int main() {
WeatherData data;
// 調(diào)用函數(shù)獲取溫度和濕度
data = getTemperatureAndHumidity();
// 在調(diào)用者中使用獲取到的值
printf("Temperature: %.2f°C\n", data.temperature);
printf("Humidity: %.2f%%\n", data.humidity);
return 0;
}
通過使用指針或結(jié)構(gòu)體,你可以在C語(yǔ)言中實(shí)現(xiàn)函數(shù)返回多個(gè)值的效果。你可以根據(jù)具體需求選擇使用哪種方式。
|
|