zoukankan      html  css  js  c++  java
  • C++学习记录(二)

    - 常用标准库函数之数学函数


    #include

    using namespace std;

    函数名 功能
    exp(x) ex
    pow(x,y) xy
    sqrt(x) x的平方根,x>=0
    fabs(x) |x
    log(x) lnx,x>0
    log10(x) lgx,x>0
    sin(x) sinx,x为弧度值
    cos(x) cosx,x为弧度值

    - 引用


    • 类型名&引用名=某变量名

    例:
    int n=4;
    int & r=n;//r引用了n,则r的类型是int &
    
    • 某个变量的引用,等价于这个变量,相当于该变量的一个别名。

    例:
    int n=7;
    int & r=n;
    r=4;
    cout<<r;//输出4
    cout<<n;//输出4
    n=5;
    cout<<r;//输出5
    
    • 注意

    1.定义引用时,一定要将其初始化成引用某个变量。
    2.初始化后,它就一直引用该变量,不会再引用别的变量。
    3.引用只能引用变量,不能引用常量和表达式。

    引用应用的简单举例

    -编写交换两个整形变量的函数
    void swap(int & a,int & b)
    {
    int tmp;
    tmp=a;
    a=b;
    b=tmp;
    }
    int n1,n2;
    swap(n1,n2);//n1,n2的值被交换
    
    -引用作为函数的返回值
    int n=4;
    int & SetValue()
    {
    return n;
    }
    int main()
    {
    SetValue()=40;
    cout<<n;
    return 0;
    }//输出:40
    

    常引用

    • 定义引用时,前面加const关键字即为“常引用”。
    int n;
    const int & r=n;
    
    其中r的类型为const int &
    • 注意:不能通过常引用去修改其引用的内容
    int n=100;
    const int & r=n;
    r=200;//编译出错
    n=300;//没问题
    
    • 常引用和非常引用的转换

    设类型为T

    -const T &T &是不同的类型
    -T & 类型的引用或T类型的变量可以用来初始化const T & 类型的引用
    -const T类型的常变量和const T &类型的引用则不能用来初始化T &类型的引用,除非进行强制类型转换。

    const 关键字

    - 定义常量指针

    • 不可以通过常量指针修改其指向的东西的内容。
    int n,m;
    const int *p=&n;
    *p=5;//编译出错
    n=4;//OK
    p=&m;//OK,常量指针的指向可以变化
    
    • 不能把常量指针赋值给非常量指针,反过来可以。
    const int *p1;
    int *p2;
    p1=p2;//OK
    p2=p1;//error
    p2=(int*)p1;//OK,强制类型转换
    
    • 函数参数为常量指针时,可以避免函数内部不小心改变参数指针所指的地方的内容。
    void MyPrintf(const char *p)
    {
    strcpy(p,"this");//试图修改,编译出错
    printf("%s",p);
    }
    
  • 相关阅读:
    [Python] 网络
    [c++] 命令
    [DB] 关系型数据库
    [win] cmd 常用命令
    [linux] Git基本概念&操作
    [SQL] 常用命令
    redis(二十四):Redis分布式锁以及实现(python)
    redis(二十三):Redis 集群(proxy 型)二
    redis(二十二):Redis 集群(proxy 型)一
    redis(二十一):Redis 架构模式实现(哨兵)
  • 原文地址:https://www.cnblogs.com/2002ljy/p/12240248.html
Copyright © 2011-2022 走看看