• C++基础细节


    1.灵活的局部变量说明

    C语言中局部变量的说明必须在可执行语句之前,否则编译无法通过,而C++中允许声明变量与可执行语句在程序中交替出现。

    例如:

    int i;

    i=10;

    int j;

    j=20;

    上面代码在C中编译不通过,而C++可以正常执行。

    2.const修饰符

    C语言使用#define来定义常量,例如:#define limit 100

    C++中使用const 来定义常量,例如;const int limit=100

    C++中const也可以和指针一起使用,他们分为以下3中情况:

    (1)指向常量的指针

    const char* name=”chen” 

    指针地址可以修改:name=”liu”(表示指针指向“liu”所在的地址)

    指针指向地址的值不可修改,因为本身就是常量,不可修改,编译会错误:name[1]=’c’

    (2)常指针

    Char* const name=”chen”;

    指针地址不可以修改,编译错误

    指针指向的值可以修改,但是修改之后运行会报错,这是为什么?

    (3)指向常量的常指针

    上面所说的两个都不可以修改

    3.带有默认参数的函数

    函数声明必须给出默认值,如:int spe(int x=3,float y=2);

    函数定义不必给出默认值了,否则会给出“重复指定默认值的报错信息”

    注意:如果有非默认参数时,默认参数必须在最后,例如:int fun(int x,int y,int z=5);

    4.函数的重载

    当两个或两个以上函数公用一个函数名,并且函数参数类型不同或者函数参数个数不同时,叫做函数重载。

    不允许重载的特殊情况:

    (1)当只有函数返回值不同时候不可以重载

    例如:int mul(int x)和double mul(int x)

    (2)和带默认参数值的函数一起使用会产生二义性

    例如:int fun(int x=2,int y=3);和int fun(int x);

    调用fun(3)会产生二义性

    4.::作用域运算符

    如果两个同名变量,一个是全局的,一个是局部的,局部变量会在其作用域内屏蔽全局变量,如果需要在局部变量的作用域内使用全局变量,需要加在变量前叫::运算符。

    5.强制类型转换

    在C中:int i=10;double j=(double)i;

    而C++既支持C中的,又添加了自己的格式:int x=10;double y=double(x);

    6.引用

    引用相当于一个变量的别名,对别名的操作都是对源变量的操作。

    不可以声明引用的数组(int &a[10])和引用的引用(int &&p),引用的指针(int &*p),但可以将引用的地址赋给指针(int &x=a;int *p=&x)

    说明:

    (1).引用在被创建以后必须立即对它进行初始化。

    (2).为引用提供初始值,可以是一个变量或者一个引用。

    (3).指针间接访问某个变量,而引用通过别名直接访问某个变量(以前博客写过)

    (4).引用初始化后不可以在重新声明为另一个变量的引用。例:int j,k; int &x=j;x=&k是错误的

    (5).引用作为函数参数可以修改传入实参的值

    (6).引用作为函数返回值可以将函数调用放在赋值运算的左边。

    例:

    int &fun(int x);

    fun(5)=100;

  • 相关阅读:
    A Deep Dive Into Draggable and DragTarget in Flutter
    使用joda-time工具类 计算时间相差多少 天,小时,分钟,秒
    XmlDocument.load 读文件报异常:文件正被其它线程使用,解决方法
    拼多多是怎么骗你的?
    东北话中的满语
    唐郑国公魏征金口“斩龙台”梦斩泾河黄龙的传说
    Asp.Net Form表单控件的回车默认事件
    UpdatePanel 控件,客户端事件生命周期踩坑
    Javascript 严格模式(strict mode)详解
    代数、几何、分析 各自的范畴
  • 原文地址:https://www.cnblogs.com/runninglzw/p/4445548.html
Copyright © 2020-2023  润新知