终于理解二级指针的作用了

摘要:
它对它没有影响。这是第二指针出现#include<voyA(char**pStr){strings=“aaaaaaaaaa”;*pStr=newchar[s.length()+1];strcpy_s(*pStr,s.c_str());A(&usingspacestd;vodA(char*&pStr);

之前学习swap函数时,知道传递指针可以实现对要交换变量本尊的修改,而直接传递值做不到这一点.究其原因,是因为函数传递参数时是以拷贝的形式,因此函数内部对其拷贝进行操作,不会影响到本尊.

如果想要通过函数实现对一级指针的值进行修改该如何去做呢?如果直接把它传进去,其实修改的是它的拷贝,而对它并没有影响.这个时候就是二级指针出场的时候了.

#include <string>
using namespace std;

void A(char ** pStr)
{
    string s = "aaaaaaaaaa";
    *pStr = new char[s.length() + 1];
    strcpy_s(*pStr, s.length() + 1, s.c_str());
}

int main() {
    char * res = NULL;
    A(&res);
    printf("%s", res);
    return 0;
}

当然也可以通过一级指针的引用来做到同样的效果.

//指针的引用形式
#include <string>
using namespace std;

void A(char *& pStr)
{
    string s = "aaaaaaaaaa";
    pStr = new char[s.length()+1];
    strcpy_s(pStr, s.length() + 1, s.c_str());
}


int main()
{
    char * res = NULL;
    A(res);
    printf("%s",res);
    return 0;
}

免责声明:文章转载自《终于理解二级指针的作用了》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇iview 组件的额外传参问题记录jmeter(21)逻辑控制器 之 if控制器下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

const 指针与指向const的指针

最近在复习C++,指针这块真的是重难点,很久了也没有去理会,今晚好好总结一下const指针,好久没有写过博客了,记录一下~ const指针的定义: const指针是指针变量的值一经初始化,就不可以改变指向,初始化是必要的。其定义形式如下: type *const 指针名称; 声明指针时,可以在类型前或后使用关键字const,也可在两个位置都使用。例如,下面...

2019-1-29-C#-Task.Run-和-Task.Factory.StartNew-区别

title author date CreateTime categories C# Task.Run 和 Task.Factory.StartNew 区别 lindexi 2019-01-29 16:14:52 +0800 2018-06-16 16:22:49 +0800 C# 有小伙伴问我,为什么不推荐他使用 Task.Factory....

Java Script 读书笔记 (三) 函数

1. 函数作用域     在函数内部定义的变量,外部无法读取,称为“局部变量”(local variable)。    变量v在函数内部定义,所以是一个局部变量,函数之外就无法读取。    函数内部定义的变量,会在该作用域内覆盖同名全局变量。    1 var v=1; 2 function f(){ 3 var v=2; 4 console...

unittest自定义封装与应用

和大家分享一个自己二次封装uniitest的方法,大家可以在评论区多多指教,一起分享学习; 一、unittest基类封装 import osimport unittestfrom common.log_print import Logfrom common.get_config import getconfigfrom common.base_page_i...

Samba安装配置

Samba简介 Samba官网:http://www.samba.orgSMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“N...

PyQt学习随笔:QTableWidget的selectedRanges、setRangeSelected访问选中矩形范围的方法

老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 在QTableWidget对项的操作支持选中多个项的情况下,可以通过方法selectedRanges返回选中矩形的列表,通过方法setRangeSelected将指定矩形范围的项选中或去选中。相关方法调用语法如下: list[QTableWidgetS...