博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
**指针的指针,引用
阅读量:4967 次
发布时间:2019-06-12

本文共 1687 字,大约阅读时间需要 5 分钟。

这是剑指offer表示数值的字符串

class Solution {public:    bool isNumeric(char* string)    {        if(string == NULL)            return false;        if(*string == '+' || *string == '-')            string++;        if(*string == '\0')            return false;        ScanDigit(&string);        bool num = true;        if(*string != '\0'){            if(*string == '.'){                string++;                ScanDigit(&string);                if(*string == 'e' || *string == 'E'){                    num = Isexponential(&string);                }            }            else if(*string == 'e' || *string == 'E')                num = Isexponential(&string);            else                num = false;        }        return num && (*string == '\0');    }    void ScanDigit(char **string){        while(**string >= '0' && **string <= '9' && **string != '\0')            (*string)++;    }    bool Isexponential(char **string){        if(**string != 'e' && **string != 'E')            return false;        (*string)++;        if(**string == '+' || **string == '-')            (*string)++;        if(**string == '\0')            return false;        ScanDigit(string);        return (true && (**string == '\0'));    }};

为什么后面那两个函数要用指针的指针?而不是指针就行了?

如果只传一个*,函数结束后,string的指针的值并不会发生变化,依旧是传进去之前那个值。因为传*,相当于copy一个值给他,而并不会改变原来的值,只有传给他地址,才能真正改变原来的值。这个和平时用的int、float的引用是一样的。

引用的写法:

1.int a = 5;

   int &b = a;

   改变b,a也会改变

   如果你直接int b = a,改变b不会改变a

   int &b = a是b也指向a的位置,int b = a,b要单独开个空间,所以b变化不会影响a,相当于copy给b

   深copy就是int b = a,因为两个开辟了两个空间,浅拷贝就是int &b = a,因为两个共享一个空间

   这里的函数如果写成*,就相当于把string这个指针的值copy给函数,也就是深拷贝

2.int c = 5;

   void find_depth(int &depth){};

 find_depth(c);

转载于:https://www.cnblogs.com/ymjyqsx/p/9118424.html

你可能感兴趣的文章
添加一个Application Framework Service
查看>>
Python——字符转换(int , bool ,str)
查看>>
Mycat分表分库
查看>>
2019.7.11
查看>>
Php取扩展名
查看>>
模板的文件名和方法名一定要一致!!
查看>>
**p
查看>>
优先队列详解
查看>>
VS2012 创建项目失败,,提示为找到约束。。。。
查看>>
外观模式(Facade Pattern)
查看>>
BZOJ 1878: [SDOI2009]HH的项链( BIT )
查看>>
BZOJ 1007: [HNOI2008]水平可见直线( 计算几何 )
查看>>
C#编写window服务,一步一步(1)
查看>>
Uva(10986)
查看>>
一个简易的日志程序
查看>>
Shopify API开发的几件事情
查看>>
第二次上机
查看>>
洛谷 P1308 统计单词数【string类及其函数应用/STL】
查看>>
Code+ A 晨跑【三个数的最小公倍数】
查看>>
poj 2187 Beauty Contest —— 旋转卡壳
查看>>