ARTS第二周

ARTS plan :The Second Week

A

算法题:reverse-integer
整数的反转,比较容易,唯一需要注意的是整数的溢出,即求出数的范围应该是[-231,231-1],可以直接用abs()取绝对值与INT_MAX/10相比,更简洁,代码如下:

class Solution
{
  public:
    int reverse(int x)
    {
        long temp = 0;
        while (x != 0)
        {
            if (abs(temp)>214748364)   //overflow or not
            {
                return 0;
            }
            temp = temp * 10 + x % 10;
            x /= 10;
        }
        return temp;
    }
};

R

https://www.thestar.com.my/tech/tech-news/2019/03/30/most-users-now-backing-up-devices-regularly-but-still-losing-data/
这是一篇关于数据丢失的科技新闻,虽然现在很多人都会经常备份他们的重要数据,但仍然会丢失很多的数据,这是因为人们比之前拥有更多的设备,有了更多访问数据的机会,从而使数据被误删、改,硬件故障或软件问题丢失。

T

这里主要浅简介一下指针
1.****指针其实就是一个值为地址的变量(即用于储存地址的变量)
2. 指针声明:Type *name
eg:int *pival
3. 运算:&(取地址运符)和 *(间接引用运符/解引用符)

  • 获取存放某个对象的地址用 &
    eg:
    double dval; double *pd = &dval; double *pd2 = pd;

  • 利用指针访问对象用 *
    eg:

int ival=64;
int *p=&ival;
cout<<*p

如果给解引用的结果赋值,就等同与给指针所指对象赋值

*p =0; 
cout<<*p 

注意:指针与其所指对象的类型必须一致

4. 指针值有四种状态:

  • a.指向一个对象;
  • b.指向紧邻对象所占空间的下一个位置;
  • c.空指针,意味着指针没有指向任何对象;
int *p1=NULL;
int *p2=0;
int *p3=nullptr;
  • d.无效指针,即上述情况之外的其他值。
    对无效指针的操作将引发错误,并且编译器不负责检查此类错误?,这和操作未初始化的变量是一样的,所以必须清楚给定指针是否有效。

5. void* 指针是一种可以存放任意对象地址的指针。

double obj=3.14,*pd=&obj; 
void *pv=&obj;
pv=pd;

void *指针的能力范围有限:和别的指针比较、作为函数的输入输出,赋值给另一个void *指针。
不能直接操作void *所指对象,因为其类型不明确。
6. 指针的指针
通过 * 的个数来区分指针的级别。即, ** 表示指向指针的指针, ***表示指向指针的指针的指针,以此类推。

int ival=1024;
int *pi=&ival; //pi指向一个int类型的数
int **ppi=&pi; //ppi指向一个int类型的指针

S

https://www.infoq.cn/article/2012/08/32-most-important-algorithms
这里主要总结了计算机科学中比较重要的32个算法,额,算是个目录,更具体的还需要自己去找找。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值