初始化

初始值:

当对象创建时获得了一个特定的值,则这个对象被初始化。

下列4条语句都是初始化:

int a1=0;
int a2={0};
int a3(0);
int a4{0};

用花括号来初始化变量成为列表初始化,且使用列表初始化且当初始值存在丢失信息的风险时。编译器会报错

#include <iostream>
using namespace std;

int main()
{
        double c = 3.141592;
        int a{c};
        cout<<a<<endl;
        int a2(c);
        cout<<a2<<endl;
}

例如上面的 int a{c}因为存在丢失信息的风险,转换便不能进行,编译报错

但int a2(c)就会执行转换,但也会因此丢失部分值

 

默认初始化:

如果定义变量时没有指定初始值,则变量被默认初始化。默认值由变量类型和定义变量的位置决定

#include <iostream>
#include <string>
using namespace std;

string g;
int a;

int main()
{
cout<<"g,a :"<<endl<<g<<endl<<a<<endl;
int l1;
string l2;
cout<<"l1,l2 :"<<endl<<l1<<endl<<l2<<endl;
}

如果是内置类型的变量未被显示初始化,则值由定义的位置决定。

定义于函数体外的变量被初始化为0

定义于函数体内部的内置类型将不被初始化,一个未被初始化的内置类型变量是未知的!

变量的声明和定义:

extern int i;//声明i而非定义i

extern double pi = 3.1416 定义i

嵌套的作用域:

#include <iostream>
int reuse = 42;

int main()
{
    int reuse = 0;
    std::cout<<reuse<<endl;
    //使用局部变量reuse
    std::cout<<::reuse<<endl;
    //显示地访问全局变量reuse 
    return 0;
}

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值