是的,函数返回值的数据类型取决于 `return` 语句中表达式的数据类型。在 C 语言中,函数可以有返回值,也可以没有返回值。如果函数有返回值,则必须在函数体内使用 `return` 语句来返回一个值。
当函数执行到 `return` 语句时,会将 `return` 后面的表达式的值作为函数的返回值。因此,函数返回值的数据类型就是 `return` 语句中表达式的数据类型。
例如,下面的函数返回一个整数类型的值:
```c
int add(int a, int b) {
return a + b;
}
```
在这个函数中,`return` 语句返回了 `a + b` 的值,因为 `a` 和 `b` 都是整数类型,所以 `a + b` 的结果也是整数类型,因此函数的返回值类型是 `int`。
需要注意的是,如果函数声明了返回值类型,但是在函数体内没有使用 `return` 语句返回任何值,或者使用了不合法的 `return` 语句(例如返回值类型与函数声明的返回值类型不一致),则会导致编译错误。