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;

  • 相关阅读:
    shell 知识点
    folder,source folder,package 区别
    meta viewport 理解
    一张图看懂JavaScript中数组的迭代方法:forEach、map、filter、reduce、every、some
    java 报错及解决
    Charles :mac上的手机代理
    关联本地文件夹到github项目
    tomcat 安装
    Refused to display '[url]' in a frame because it set 'X-Frame-Options' to 'Deny'.
    linux 知识点
  • 原文地址:https://www.cnblogs.com/runninglzw/p/4445548.html
Copyright © 2011-2022 走看看