C++primer plus day2

初始化得方式

        赋值初始化

        利用大括号初始化

                int rheas = {12};

                int rheas{12};   //两者等价



显示八进制 或者16进制数

cout << hex;

cout << "waist = "<<waist<< endl;


C++如何确定常量的类型

cout << "year = "<< 1492 << endl;

程序将把1492存储为int long还是其他整型呢?

除非有理由存储为其他类型(如使用了特殊的后缀来表示特定的类型,或者值太

大,不能存储为int)否则C++将整型常量存储为int类型


cout.put(); 和C中putchar一样,这个函数是一个重要的C++ OOP概念-成员函数

的一个例子,类定义了如何表示和控制数据,成员函数归类所有,描述了操纵类

数据的方法。例如类ostream有一个put()成员函数,只能通过类的特定对象(例

如这里的cout对象)来使用成员函数。



与int不同的是,char在默认情况下既不是没有符号,也不是有符号,是否有符>号由C++实现决定,这样编译器开发人员可以最大限度将这种类型与硬件属性匹>配起来,如果char有某种特定的行为非常重要,则可以显示将类型设置为signed char或unsigned char


const限定符

通用格式 const type name = value;

注意,应在声明中对const进行初始化,下面的代码不好

const int toes;

toes = 10;

如果在声明常量时没有提供值,则该常量的值将是不确定的,且无法修改。

const比#define的优势所在于,首先,它能够明确指定类型,其次,可以使用C++作用域规则将定义限制在特定的函数或文件中,(作用域规则描述了名称在各>种模块中的可知程度),第三,可以将const用于更加复杂的类型。如数组和结>构 例如C++可以用const值来声明数组长度。

浮点数

C++有三种浮点类型:float double long double,这些类型是按照他们可以表示

的有效数位和允许的指数最小范围来描述的。有效位是数字中有意义的位。

C和C++对于有效位数的要求是,float至少32位,double 至少48位 且不少于float,  long double 至少和double一样多。通常情况下,float 32位,double 64位,long double 为80、90或128位。另外这三种类型的指数范围至少是-37~37


float 一般是小数点后7位有效精度  double是小数点后15位精度


浮点常量

默认的浮点常量都属于double类型,如果希望是float类型,需要使用f或F后缀>,对于long double 类型可使用l或者L后缀。

将一种算术类型的值赋给另一种算术类型的变量时,C++将对值进行转换

表达式中包含不同的类型时,C++将对值进行转换

将参数传递给函数时  C++ 将对值进行转换


关于以{}方式进行初始化

const int code = 66

int x = 66;

char c1 {31325};   不被允许  装不下

char c2 = {66};  允许  char字符能支持66

char c3 {code}    允许  code 是常量66

char c4 {x}    不允许  因为x 是一个变量 他的值可能很大

x = 31325;

char c5 = x;   允许 这是C语言的赋值


short chickens = 20;

short ducks = 35;

short fowl = chickens + ducks;

C++程序取得chickens 和 ducks的值,并将它们转换为int,然后结果转换为short类型,因为结果将被赋给一个short变量。

通常int类型为计算机最自然的类型,这意味着计算机使用这种类型时运算速度>最快


强制转换通用格式如下

(typeName) value

typeName (value)

前一种格式是适应C语言的,后一种是C++语言的,新格式的想法是,要让强制类

型转换就像函数调用一样,这样对内置类型的强制类型转换就像是为了用户定义

的类设计的类型转换。


C++还引入了4个强制类型转换运算符,对它们的使用要求更为严格,static_cast<>可以用于将值从一种数据类型转换到另一种数值类型,例如

static_cast<long> (thron)

推而广之

static_cast<typeName> (value)


C++11中的auto声明

auto  n = 100;   //n is int

quto x = 1.5;   //x  is double

auto y = 1.3e12L   //y  is long double


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值