zoukankan      html  css  js  c++  java
  • 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;

  • 相关阅读:
    使用CustomValidate自定义验证控件
    C#中金额的大小写转换
    Andriod出错之Unable to build: the file dx.jar was not loaded from the SDK folder!
    VC 编写的打字练习
    机房工作笔记Ping只有单向通
    web服务协同学习笔记(1)
    Dll 学习3 将MDI子窗口封装在DLL中
    机房工作学习文件共享
    Andriod出错之Failed to find an AVD compatible with target 'Android 2.2'
    Andriod出错之wrapper was not properly loaded first
  • 原文地址:https://www.cnblogs.com/runninglzw/p/4445548.html
Copyright © 2011-2022 走看看