C语言函数中return的作用:是否返回所指定变量的对应值?
C语言return返回值相关问题解答
1. return 0代表执行成功的定义
C语言标准对main函数的返回值有明确约定:返回0代表程序正常执行完毕,该状态会告知操作系统当前程序运行无异常。非0的返回值一般用于标识程序运行出错,错误码的具体含义可以由开发者自行定义,例如约定返回1代表入参非法、返回2代表文件读写失败等。
2. 自定义返回值的效果
你写return p;时,确实会把p当前的取值作为该函数的最终返回值。需要注意的是,return返回的是值的拷贝,并不是变量本身:p是power函数的局部变量,函数执行结束后p占用的栈空间就会被回收,调用方拿到的只是p的数值拷贝,不会涉及无效内存访问问题。
3. 示例代码的返回值说明
你给出的示例代码中,main函数调用power()时拿到的返回值,完全等于power函数内部局部变量p的计算结果:
#include <stdio.h> int power(int m, int n); /* 测试幂函数 */ int main(){ int i; for(i = 0; i < 10; ++i) printf("%d %2d %3d", i, power(2,i), power(-3,i)); return 0; } int power(int base, int n) { int i, p; p = 1; for(i = 1; i <= n; ++i) p = p * base; return p; }
比如传入参数base=2、n=3时,power内部循环结束后p的取值是8,main函数里power(2,3)调用得到的结果就是8。
内容的提问来源于stack exchange,提问作者Gregory Magnus
相关产品推荐
相关产品推荐

