C++11学习笔记(2)

来源:互联网 发布:美国国父路易十六知乎 编辑:程序博客网 时间:2024/06/06 03:27

变量和基本类型1

  • C++算数类型
类型 含义 最小尺寸 bool 布尔类型 未定义 char 字符 8位 wchar_t 宽字符 16位 char16_t Unicode字符 16位 char32_t Unicode字符 32位 short 短整型 16位 int 整型 16位 long 长整型 32位 long long 长整型 64位 float 单精度浮点 6位有效数字 double 双精度浮点 10位有效数字 long double 扩展精度浮点数 10位有效数字

类型转换区分:
1、把非bool型赋给bool型,初始值为0结果为false,否则结果为true。
2、把bool赋给非bool型,初始值false结果为0,为true结果为1。
3、赋给无符号类型一个超出其表示范围值时,结果是初始值对无符号类型数值总数(表示范围内数的个数)取模后的余数。如8比特的无符号可表示0~255区间内的值,如果赋予了区间外值,实际结果应该是该值对256取模后的余数。例如把-1赋给8比特的无符号类型所得结果是255。

  • 对于使用if语句应注意地方
int i = 42;if(i)   //if条件的值将为true    i = 0;if( i == 0)     //if条件为false    i = 1;if( i = 1)      //if条件恒为true,此处为赋值语句,不管怎样,不会出现任何警告或错误    i = 2;//为防止出现如上错误,一般将定值写前面if( 1 == i)     // 如果忘写一个“=”会报错
  • 赋值初始化辨析:
    初始化不是赋值,初始化含义是创建变量时赋予其一个初始值,而赋值的含义是把对象的当前值擦出,而以一个新值来代替。

    c++初始化形式:

int i = 0;int i = {0};int i(0);int i{0};

作为c++11标准的一部分,用花括号初始化形式称为列表初始化。当用于内置类型的变量时,这种初始化有一个重要特点:如果我们使用列表初始化且初始值存在丢失信息风险,编译器将报错:

long double ld = 3.141592654;int a{ld}, b = {ld};    //错误,转换未执行,因为存在丢失信息风险int c{ld}, b = ld;      //正确,转换执行,且确实丢失了部分值
  • 变量声明和定义
    声明使得名字为程序所知,而定义负责创建与名字关联的实体。也即定义申请了存储空间,也有可能为变量赋初始值。
    如果想声明一个变量而非定义它,就在变量名前添加关键字extern,而且不要显示地初始化变量:
extern int i;       //声明i而非定义int j;      //声明并定义j//定义pi,任何包含了显示初始化的声明都成了定义,这样抵消了extern作用extern double pi = 3.1416;      

在函数体内部,如果试图初始化一个由extern关键字标记的变量,将引发错误。
变量只能被定义一次,但是可以被多次声明。
声明和定义区别看起来也许微不足道,但实际非常重要,如果需要在多个文件中使用同一个变量,就必须将声明和定义分离。此时,变量的定义必须出现在且只能出现在一个文件中,而其他使用该变量的文件中必须对其进行声明,却不能重复定义

- 嵌套的作用域
因为有内层作用域和外层作用域之分,但当在内部想使用外部作用域的同名变量时,该怎样用?以下用一个小程序解释区分:

#include <iostream>using namespace std;//该程序仅用于说明:函数内部不宜定义与全局变量同名的新变量int reused = 42;    //reused拥有全局作用域int main(){    int unique = 0;    //块作用域    //输出: 42  0    cout<<reused<<" "<<unique<<endl;    int reused = 0;    //新建局部变量,覆盖同名全局变量    //输出: 0 0    cout<<reused<<" "<<unique<<endl;    //使用作用域操作符显示访问全局变量,输出: 42 0    cout<<::reused<<" "<<unique<<endl;    return 0;}
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 政府咨询电话打不通怎么办 公务员准考证丢了怎么办 行测老打40多分怎么办 网上没有报名的怎么办? 上大学转户口怎么办 梅菜扣肉勾芡怎么办 有个精神病妈妈怎么办 妈得了精神病该怎么办 思维不正常的人怎么办 妈妈是个精神病怎么办 我老婆有精神病怎么办 在郑州怎么办完税证明 中专没考上大专怎么办 考研两次没考上怎么办 2018造价员取消后怎么办 造价员取消了投标怎么办 造价员考试取消后怎么办 只拿到结业证怎么办 本科只有结业证怎么办 健身后肌肉水肿怎么办 大腿面肌肉疼怎么办 跑步后大腿酸疼怎么办? 运动后大腿胀痛怎么办 尔雅课程没看完怎么办 国家课程校本化怎么办 上海买房限购怎么办 投资公司要求回购股份怎么办 超过应届生落户年龄怎么办 造价员章到期了怎么办 造价员继续教育过期了怎么办 sd卡存储不够怎么办? 进项税大于销项税怎么办 公司扣员工奖金怎么办 墙面大面积有霉怎么办 电脑总是断网怎么办 造价师资格证书丢了怎么办 行测做题速度太慢怎么办 普通话准考证丢了怎么办 信用卡还款逾期了怎么办 淮北建洗煤厂需要怎么办 建设工程不结算怎么办