• 5.1 return语句


    5.1 return语句

    1. 有返回值函数

    在有返回值的函数中,return语句的作用是提供整个函数的返回值,并结束当前函数返回到调用它的地方。

    2. 没有返回值函数 

    在没有返回值的函数中也可以使用return语句,例如当检查到一个错误时提前结束当前函数的执行并返回:

    1. #include
    2. void print_logarithm(double x)
    3. {
    4. if (x <= 0.0) {
    5. printf("Positive numbers only, please.\n");
    6. return;
    7. }
    8. printf("The log of x is %f", log(x));
    9. }

    3. if-else中使用return函数

    在if-else中我们定义了一个检查奇偶性的函数,如果是奇数就打印x is odd.,如果是偶数就打印x is even.。事实上这个函数并不十分好用,我们定义一个检查奇偶性的函数往往不是为了打印两个字符串就完了,而是为了根据奇偶性的不同分别执行不同的后续动作。我们可以把它改成一个返回布尔值的函数:

    1. int is_even(int x)
    2. {
    3. if (x % 2 == 0)
    4. return 1;
    5. else
    6. return 0;
    7. }

    4. 函数返回一个值相当于定义一个和返回值类型相同的临时变量并用return后面的表达式来初始化

    1. int is_even(int x)
    2. {
    3. if (x % 2 == 0)
    4. return 1;
    5. else
    6. return 0;
    7. }
    8. int i = 19;
    9. if (is_even(i)) {
    10. /* do something */
    11. } else {
    12. /* do some other thing */
    13. }

    例如上面的函数调用相当于这样的过程:

    1. int 临时变量 = !(x % 2);
    2. 函数退出,局部变量x的存储空间释放;
    3. if (临时变量) { /* 临时变量用完就释放 */
    4. /* do something */
    5. } else {
    6. /* do some other thing */
    7. }

    if语句对函数的返回值做判断时,函数已经退出,局部变量x已经释放,所以不可能在这时候才计算表达式!(x % 2)的值,表达式的值必然是事先计算好了存在一个临时变量里的,然后函数退出,局部变量释放,if语句对这个临时变量的值做判断。注意,虽然函数的返回值可以看作是一个临时变量,但我们只是读一下它的值,读完值就释放它,而不能往它里面存新的值,换句话说,函数的返回值不是左值,或者说函数调用表达式不能做左值,因此下面的赋值语句是非法的:

    is_even(20) = 1;

  • 相关阅读:
    线性代数 --- 矩阵的QR分解,A=QR
    基于PHP+MySQL的大学生交友社交网站
    数学建模国赛/美赛常见赛题类型及建模方案(纯干货)
    uni-app 之 Toast 消息提示
    Spring bean
    关于plt.scatter()的使用
    数据结构:栈、队列、排序、 算法的复杂度
    Windows批处理
    Flip技术
    旋转矩阵中的易错点
  • 原文地址:https://blog.csdn.net/qianniuwei321/article/details/126811428