设为首页 加入收藏

TOP

C++入门教程之函数传参和返回
2018-04-08 08:51:13 】 浏览:26
Tags:入门教程 函数 返回

指针的用途一:函数传参和返回。这个用途可以用左值引用代替。

参数传递

我们知道函数传参是一个赋值行为。当一个参数占用内存比较大而且赋值是复制所有数据的时候,就应该使用指针或者引用。

基础示例

以下是函数参数使用指针的用法:

#include 
  
   

void print_string(const std::string *ptrtext)
{
    std::cout << *ptrtext << std::endl;
}

int main(void)
{
    std::string text = "小古银的C++教程";
    print_string(&text);
    return 0;
}

  

基础讲解

传递参数的时候,将变量text的地址赋值函数形参ptrtext,然后执行输出。传递参数是只复制了地址,而没有复制字符串。

基本上和引用的用法相同,和引用不同的是,由于值没有地址,不能在值前加&然后直接传给函数,这是不行的。

返回值

基础示例

#include 
  
   

const std::string * print_string(const std::string *ptrtext)
{
    std::cout << *ptrtext << std::endl;
    return ptrtext;
}

int main(void)
{
    std::string text = "小古银的C++教程";
    auto pointer = print_string(&text);
    std::cout << *pointer << std::endl;
    return 0;
}

  

输出结果:

小古银的C++教程
小古银的C++教程

基础讲解

上面这样写是没问题的,下面这样写就是问题大大滴

const std::string * print_string(void)
{
    std::string text; // 函数结束后所有栈内存全部释放
    return &text; // 将没有指向内存的地址返回是非常严重的错误
}

总结

为了使这个用途的操作更加方便和不容易出错,C++引入左值引用来代替指针在函数传参和返回上的功能。以上内容可以算是对引用的深入了解。

由于左值引用是简化的指针,所以左值引用实际占用内存的大小就是指针占用内存的大小。


编程开发网
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇C++入门教程之内存和指针 下一篇C/C++中的相对路径和绝对路径以及..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

最新文章

热门文章

C 语言

C++基础

windows编程基础

linux编程基础

C/C++面试题目