C++第二章概述知识点

本文详细介绍了C++中的const修饰符、函数原型、内联函数、默认参数、作用域运算符、强制类型转换、new和delete操作以及引用的概念和使用规则。重点讲解了const在变量和指针中的应用,内联函数的优化原理,以及引用作为函数参数和返回值的独特性质。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

目录

1.const修饰符

 2.函数原型说明:

 3.内联函数

4.带默认参数的函数

5.作用域运算符“::”

 6.强制类型转换

7.运算符new和delete

8.引用


1.const修饰符     

        1.特点。

         例如:const int A=100;这个常量A是有类型的,占储存单元,有地址,可以用指针指向它,只是不能修改它。比C语言中的define更加完善。

        2.几种易混淆的常量(指针)。

         (1)指向常量的指针。      const char*name = "z";

         (2)常指针。                    char*const name = "z";

         (3)指向常量的常指针。    const char*const name="z";

                   注意*号左边是指针指向的数据类型,*号后面是指针类型和名字。

                         如果const定义一个整型变量,可以省略int

                         函数的形参也可以用const说明,这样可以保证形参在函数内不被改动。经常用于用指针读取数组时,

 2.函数原型说明:

            (1)调用函数前如果没有定义,必须先给出函数声明;

             (2)函数声明中可以只写出参数类型,不写参数名,但定义时必须写出参数名。

 3.内联函数

              (1)定义:在函数最前端前加inline,就声明为内联函数。在声明和定义时都要加inline。

              (2)用途和作用:在有一个简短又需要频繁调用的函数时,定义为内联函数,可以提高程序的运行速率。在类内直接定义的成员函数,就是隐性的内联函数。

                  注意: 内联函数内不能有复杂的语句,如for switch等。

4.带默认参数的函数

               (1):指定默认值的参数必须在没有指定默认值的参数右端,实参形参从左开始结合。带有默认值的函数实参和形参的个数可以不同。

                (2)在调用函数时,如果省略某个参数,则后面的参数必须省略而采用默认值。不允许出现:special(  , 1 )、

5.作用域运算符“::”

                (1)如果有两个同名变量,一个是全局的,一个是局部的,那么局部变量在其作用域拥有较高的优先权,将屏蔽全局变量。如果希望在局部变量的作用域内使用同名的全局变量,可以在该变量前加 “::”,此时::X代表全局变量。

...
int x=1
int main
{
    int x=2;
    cout<<x<<endl; //此时输出2
    ::x=3;
    cout<<::x<<endl;//此时输出3

      return 0;
}

 6.强制类型转换

                  例如:int i=10;

                             double  x = (double)i;//double  x = double(i);

7.运算符new和delete

               (1)基本形式: 指针变量名=new  类型; delete 指针变量名。

             (2)作用:      new可以根据数据类型自动计算所要分配的储存空间。

              (3)注意:  new可以为数组动态分配储存空间。此时必须提供所有维的大小.释放动态分配的数组储存区时。

                   格式如下

                                  :delete[(此处什么都不用写)]指针变量名;

                               new可以为简单变量分配储存空间的同时,进行初始化。:int *p=new int(9);

8.引用

                  (1)在声明引用时,必须立刻进行初始化。不能先声明后赋值。初始化时可以是变量,也可以是另一个引用。

                               int i;   int &j; j=i; //错误

                               int i;   int &j=i;    //正确

                   (2)引用在初始化后,不能重新声明为另一个变量的引用。

                    (3)不允许建立Void类型的引用;不能建立引用的引用;不能建立指向指向引用的指针,但是可以把引用的地址赋值给一个指针;不能建立引用的数组;引用声明过后,使用时和普通变量一样,不用加&;

    int a=2;
    int &b=a;//正确

    void &i=10; //错误

    int c[4]="abcd";
    int &d[4]=a[4];//错误

    int &e=a;
    int &&f=a;//错误

    int &*p=a;//错误,不能建立指针的引用;
    
    int *q=b;//正确 可以把引用赋值给指针。
    
    

               (4)引用的另外一个作用就是作为函数的参数,会改变实参。

                (5)用引用做返回值;

...
int main()
a[]={1,2,3,4};
{
    int &set(int);
    set(2)=20;
    cout<<set(2);
    return 0;
}


int &set(int x)
{
    return a[x];
}

          注意:除了将函数定义为返回一个引用外,通常一个函数是不能直接在赋值运算左边的。

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值