c++primer第二章变量与基本类型小结-2

100 篇文章 8 订阅

第二章----变量与基本类型

1.初始化   ,复制初始化,如int a=100。直接初始化 如int a(20);要明白一点:初始化不等于赋值。内置类型,系统有时候会帮我们初始化变量。但只有全局的、静态的或是在名字空间内的变量才会被编译器自动初始化为0,空串。局部变量不被自动初始化。对于类类型依赖于构造函数。对于没有提供构造函数的类,编译器会自动产生一个默认的构造函数但是它不初始化类内内置类型的各成员变量。


2.声明用于向程序表明变量的类型和名字,可以通过使用extern关键字声明变量而不定义它。它说明变量定义在程序的其它地方。变量可以声明多次,

但只能定义一次,  如果声明有初始化式,此时它被当做定义。如extern int i=10;另外注意只有当extern声明位于函数外部时才可以含有初始化式。


3.头文件仅仅用于声明而不是用于定义,且会被包含在多个源文件中,因此用于定义的语句不应该放在头文件中,但是头文件可以1:定义类 2:编译

时就确定值得const对象 3:inline函数。这些实体可在多个源文件中定义,只要每个源文件中的定义是相同。


4.引用本身只是给对象起一个别名,所以它不是一个对象,这和指针是不同,一旦一个引用绑定到一个对象,必须从一而终。const引用还可以绑定到

非const类型的对象上,只是说不能通过引用来改变引用对象的值,非const引用只能绑定到 该类型引用同类型的对象(这些和指针一样),const常量

和引用一样,必须在定义时初始化。


5.全局作用域中定义的非const变量可以在整个程序中访问,而const类型的变量仅仅可在定义它的文件内可见。为了使其具有全局作用域,可以在定义

时添加extern。

6.和常量引用一样,指向常量的指针也没有规定其所指对象必须是一个常量,可以是一个非常量。指向常量的指针仅仅要求不能通过该指针改变对象的

值,而没有规定那个对象的值不能通过其他途径改变。常量指针指的是指针本身是一个常量,其值即变量的地址是不可以改变,必须在定义时初始化,

对这个地址对应的变量即其指向的对象是常量与否没有要求。概括来讲指针和所指向的对象是相互独立的对象。


7.指针与引用不同点: 

指针本身就是一个对象,允许对指针赋值和拷贝,而且指针的生命周期内它可以先后指向几个不同的对象。 指针无须在定义时赋初值。


8.  顶层const 表示指针本身是一个常量,而底层const表示指针所指的对象是一个常量。更一般的,顶层const可以表示任意的对象是常

量,这一点对任何数据类型都适用,如算术类型,类,指针等,底层const则与指针和引用等复合类型的基本类型部分有关,比较特殊的是,指针类型

即可以是顶层const也可以是底层const。重载函数时,对顶层const 形参无法重载,即其和变量是一样的,编译器不能区分。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值