C++ Primer学习札记_快速入门

1.变量的初始化

     C++支持两种初始化变量的形式:复制初始化和直接初始化。

    

int a(10);//直接初始化
int a=10;//复制初始化

当初始化类型对象时,复制初始化和直接初始化几乎没什么区别,只有在编写非常复杂的类时才显示出他们的区别,现在只需记住 直接初始化比复制初始化效率更高

注:在函数体外定义的变量都自动初始化为0,但在函数体内并不进行自动初始化,未初始化变量引起的错误难以发现,所以一定要对变量进行初始化。

2.变量的声明和定义

    声明用于向程序表明变量的类型和名字,而不分配存储空间。变量的定义用于为变量分配存储空间。

  

extren int a;//声明但未定义
int a;//声明并且定义
3.名字 作用域

  定义在所有函数外部的名字具有全局作用域(global scope),可以在程序的任何地方访问。在函数中定义的名字可以在函数中使用,具有局部作用域(local scope)。在语句中定义的名字,只能在本语句中使用,而不能在其他位置使用,具有语句作用域(statement scope)。

#include<iostream>

int i=0;//global scope

int main()
{
    int a=1;//local scope
    for(int j=0;j<3;++j)//statement scope
         std::cout<<a<<" ";
    return 0;
}
注:局部 变量能够隐藏全局变量
#include<iostream>

    using namespace std;
int i=42;

int main()
{
    int i=100;
    int j=i;
    cout<<j<<endl;
    return 0;
}
输出结果是100;

3.const 限定符

   const 限定符把一个对象转换成一个常量,常量在定义后不能被修改,所以必须初始化。

   

const int a=1;
const int b;//编译时会报错,提示常量未初始化
   const 对象默认为文件的局部变量,在全局作用域声明的const变量是定义该对象的文件的局部变量,其他文件不能。若想在整个程序中访问这个变量必须显式的指定const变量为extern,但非const变量默认为extern。


4.枚举

枚举的定义包括关键字enum,其后是一个可选的枚举类型,和一个用花括号括起来用逗号分开的枚举成员。

enum open_modes{input,output,append};
默认的,input初始化为0,output初始化为1,append初始化为2


可以指定枚举成员的值

enum  Pointers{ point2d=1,point2w,point3d=5,point3w};
point2d初始化为1,point2w初始化为2,point3d初始化为5,point3w初始化为6


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值