C++基本知识(一)

C++基本知识(一)

基本内置类型:C++本身定义的类型
字节=byte
字=word
8位=1个字节
4个字节=1个字
一、初始化
1.初始化与赋值是两种不同的操作:
初始化是指创建对象并给它赋初始值,而赋值是指擦除对象的当前值并用新值代替

2.复制初始化用=,而直接初始化用(),直接初始化比复制初始化更有效率
例:
int a(1); //直接初始化
int a=1;  //复制初始化

例:字符串的初始化
1)通过字符串字面值初始化
string titleA="C++ Primer"; //采用复制初始化
string titleB("C++ Primer"); //采用直接初始化
2)通过字符和计数器初始化
string all_nines(10,'9') //all_nines="9999999999" 通过计数器和一个字符来

                           初始化,只能通过直接初始化来完成
3.内置类型变量的自动初始化
关于内置类型变量的初始化,在函数体外定义的变量都初始化为0,而在函数体内定义的内置类型变量不能进行自
动初始化,因此最好每个内置类型的对象都要在声明时进行初始化

二、声明(extern)与定义(definition)
声明是向应用程序表明存在对象的类型和名字,不分配存储空间,
定义是用于为对象分配存储空间,还可以为对象初始化

注意:
1.在一个程序中,一个对象声明可以多次,但定义只有一次,不可以重定义
2.如果在声明中有了初始化式,那么它可被当作是定义,即使声明标记为extern,为它分配存储空间;

作用域分为全局作用域,局部作用域,语句作用域,类作用域,命名空间作用域

三、const限定符



1.const可以用来定义常量;
2.用const定义的常量只能应用于本文件之中,不可被其他文件访问;
如:用非const定义变量,可以被其他文件访问:
//file_1.cpp
int counter;
//file_2.cpp
extern int counter; //OK,uses counter form file_1
++counter;

3.若要定义的const常量想要被其他文件访问,则应该在定义处声明为extern
如:
//file_1.cpp
extern const int counter=2;
//file_2.cpp
extern const int counter; //OK,uses the const counter form file_1
std::cout<<counter<<std::endl;

 

四、引用



用途:主要用于函数的形式参数传递中;
注意:
1.引用是一种复合类型(用其他类型定义的类型);
2.引用在定义时进行对象的初始化,初始化的右值必须为一个对象(不能为字符值常量),且被引用者(引用的
对象)要与引用同类型;
3.const引用
1)const对象的引用只能用const引用(指向const对象的引用),且const引用不能修改,只能读取
例:
const int i=1;
int &refi2=i;  //erro
const int &refi1=i; //ok
2)const引用可以初始化为不痛类型的对象或初始化为右值(如字面值常量);
例:
int i=42;
const int &r1=42;
const int &r2=r1+i;
3.非const引用(普通引用)只能绑定到与该引用同类型的对象;而const引用则可以绑定到不同但相关的类型的对
象或绑定到右值;
例:
double dval=3.14;
const int &ri=dval;
相当于建立个临时变量temp保存dval,然后再对temp引用
int temp=dval;  //创建临时变量
const int &ri=temp;

五、typedef名字
作用:
1.为了隐藏特定类型的实现,强调使用类型的目的;
2.简化复杂的类型定义,使其更易于理解;
3.允许一种类型用于多个目的,同时使每次使用该类型的目的明确;

六、枚举(enum)
1.枚举的定义及默认初始化
定义:
例:enum open_modes {input,output,append}; //input=0,output=1,append=2
初始化:
在枚举的定义时,已默认对该类型惊醒初始化,第一个枚举成员为0,以后每个枚举成员比前一个大1;
2.枚举成员是常量,可对其进行初始化
例:
enum forms {shape=1,sphere,cylinder,polyon}; //shape=1,sphere=2,cylinder=3,polyon=4
3.枚举成员值可以不是唯一的
例:
enum points {x1=1,x2,x3=2,x4} //x1=1,x2=2,x3=2,x4=3
4.在其他位置不能改变枚举成员的值,因为枚举成员是常量
5.枚举类型的对象的初始化或赋值,只能通过其枚举成员或同一枚举类型的其他对象来进行

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值