您的位置:首页 > 编程语言 > C语言/C++

C++学习第四天

2014-05-26 21:45 225 查看
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的值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: