C++学习第四天

来源:互联网 发布:mac os 10.13 dmg下载 编辑:程序博客网 时间:2024/05/20 06:53

                                           C++学习第四天


      名字的作用域,跟java的差不多也是局部变量优先的原则。C++可以在任何的地方定义变量,跟java一样,建议在使用变量的地方定义变量。

       const限定符

                   count是指定常量的关键字,所以const定义的变量需要显示初始化,
                   该变量定义后将不能改变其值,相当于该变量是只读的,不可写的。 跟java的final(java的final变量只能初始化一次)的效果差不多。例如:
                                  int cut=0;
                                  const int sz=cut;
                                  cut++;
                                 //由于sz是一个常量
                                //所以下面的语句尝试修改sz的值,将报错
                                sz++;
               除非特别说明,在全局作用声明的const变量是定义该对象的文件的局部变量,不能被其他文件访问。非const变量默认为extern。要使const变量能够在其他的文件中访问,必须式指定它为extern。

       C++引用:引用是一种符合类型,通过在变量名添加“&”符号来定义。其中复合类型是指用其他类型定义的类型。引用是别名,引用只是它绑定的对象的另一个名字,作用在引用上的所有操作事实上都是作用在该引用绑定的对象上。例如

                 int ival=10;

                  int &refVal=ival; //引用必须用与该引用同类型的对象初始化:

                 //将refVal指向的对象ival加上2.修改引用的值,就是修改被引用的值。

                refVal+=2;

         const引用,const引用是指const对象的引用。

               const引用可以初始话为不同类型的对象,或者初始化为右值,如字面常量。
               同样的初始化对非const引用却是不合法的,而且会导致编译错误,因为非const引用只能绑定到与该引用同类型的对象。
                            //int i=42;
                            //const int &r=43;
                            //const int &r2=r+i;
                            //将引用绑定到不同的类型时:
                            double dval=3.14;
                            const int &ri=dval;
                            //编译器会把这些代码转换澄如下形式的编码:
                            int temp=dval;
                            const int &ri=temp;
                            //如果ri不是const,则可以为ri赋新值,这样不会修改dval的值,而是修改了temp的值。
  






                



0 0
原创粉丝点击