• c语言返回值为数组的问题


    借鉴他人,自我学习

    1.可以用数组输出

    返回值为指针形式,传参为指针。返回一个地址

    例如:

    char *text(char *tmp)

    {

        return tmp;

    }

    int main()

    {

      printf("%s",text("ffffx"));

    }

    输出的结果为ffffx

    但是如果这样写

    char *text()

    {

       char tmp[30] = "ffffx";

       return tmp;

    }

    int main()

    {

    printf("%S",text());

    }

    这样语法虽然没有问题但是输出结果没有意义;因为tmp[30]是局部变量返回时虽然首地址没有变,但是里面的值已经无意义。

    tmp*定义的是一个全局变量。

    char *text()

    {

       char *tmp = "ffffx";

       return tmp;

    }

    int main()

    {

    printf("%S",text());

    }

    如果这样的话就可以了因为字符串代表的十一个全局变量被存储在一个地址中,而且地址被返回了,之后就算tmp被销毁了,结果还是正确的。

  • 相关阅读:
    IOS-SQLite3的封装
    IOS-SQLite3
    IOS-真机相关
    IOS-将任意对象存进数据库
    IOS-支付宝
    IOS-推送通知
    iOS-证书真机调试
    iOS-免证书真机调试
    iOS-沙盒路径
    Android之发送短信的两种方式
  • 原文地址:https://www.cnblogs.com/fanxinguu/p/4358064.html
Copyright © 2020-2023  润新知