C++Primer学习笔记第二章(2/18) 变量和基本类型

 


整型:

整型short, int, long可以是带符号的,也可以是不带符号的。默认带符号。

 

带符号整型:

表示正数,0和负数。为了体现符号,其中一个位为符号位。

 

无符号整型:

表示正数和0

 

关于赋值时的越界:

大部分编译器是这样工作的。

编译器在给无符号整型赋值时,正常情况下,不能赋予负数。但是,如果出现了负数赋值给无符号整型的情况,编译器将对该负数取模。如, 8unsigned char如果被赋值为-1, 则结果为255。因为(-1)mod(256)=255。同样道理,如过把超出取值范围的正数赋值给无符号整型,也将取模。如336赋值为unsigned char,结果为(336)mod(256)=80

编译器在给带符号整型赋值时,采取和无符号整型类似的方式取模。

 

浮点型:

分为单精度浮点数float, 双精度浮点数double, 扩展精度浮点数long double。、

 

字符型:

字符型尽管是整型,但是通常用来存储字符。

 

布尔型:

布尔型表示的值和可以被赋予的值是两个概念。

布尔型表示的值为truefalse,可以被赋予的值为任何算术类型的值。0值为false,任何非0值都表示true.

 

字面值常量:

用作操作数的右值,即用来赋值给对象的值。如1,’A’等。

整型字面值可用三种进制来表示,如:十进制:20             八进制: 024              十六进制:0x14

整型字面值默认为intlong类型。可以做整型间的类型转换,在值后面加上U或者L。如2048UL, 6LU,1L

浮点字面值可用十进制或者科学技术法莱表示。

浮点字面值默认为double类型。可以做浮点型间的类型转换。在值后面加F表示单精度,加L表示扩展精度。

.001f=1E-3F 12.345L=1.2345E1L

true, false是布尔型的字面值。

可打印的字符型字面值用一对单引号来定义。如’a’, ’100’。在字面值前加L得到宽字符字面值。如L’a’, L’100’

 

字符串字面值:

有的字面值有基本内置类型,有的没有,比如字符串字面值。它是一串常量字符。为了兼容C语言,所有字符串字面值都有编译器自动在末尾添加一个空字符。比如字符串字面值”A”包含字母A和两个空字符这两个字符。

 

多行字面值:

在一行的末尾加一个反斜线符号可以将此行和下一行当成同一行处理。

cout<<”a happy/

                   sunny/

                   day”<<endl;

等于cout<<”a happy sunny day”<<endl;

 

转义字符:不可打印的字符

                  

变量:

变量提供了程序可以操作的有名字的存储区,变量有特定的类型,该类型决定了变量的内存大小和布局,能够存储于该内存中的值的取值范围和可以应用在该变量上的操作集。它们可以被称为变量或者对象。变量是左值。

 

变量名:

即变量的标识符。由字母,数字或者下划线构成。如studentNumber_class1

 

变量的定义:

必须指定变量的类型和标识符,可以为变量提供初始值。

 

变量的初始化:

可以为直接初始化( int  ival(1024))或者复制初始化(int  ival=1024)。对于内置类型来说,复制初始化和直接初始化几乎无区别。对于类类型的对象来说,有些初始化仅能用直接初始化来完成。

初始化不是赋值。初始化是指创建变量并且给它赋初始值。赋值是指擦除对象的当前值并用新值替代。

 

变量初始化规则:

如果是内置类型变量,那么在函数体(包括main函数)外定义的都初始化为0,在函数体内定义的则不进行自动初始化。而未初始化将带来危险。因此建议每个内置类型的对象都初始化。如果是类类型,有的类提供了默认构造函数,此时就可以不提供构造函数来进行显示的初始化。

 

变量的声明:

extern关键字表示。一个程序往往由多个文件构成,声明说明变量定义在程序在其它地方。变量仅能定义一次,但是可以声明多次。

 

作用域:以花括号来界定。一个名字的作用域是从其声明点开始知道其声明所在的作用域结束。

 

作用域可嵌套:

局部变量的定义屏蔽了全局变量。即作用域范围更小的名字优先于作用域范围更大的名字。

 

const

const把一个对象转换成一个常量。const常量必须在定义时初始化,因为后来它就没法修改了。const变量默认为文件的局部变量。

 

extern

1声明一个普通变量 2使得const常量从文件的局部变量变为整个程序的变量。

 

引用:

引用是一种复合类型。必须使用与该引用同类型的对象初始化。(要点:1必须初始化2使用对象,不能使用常量3使用同类型对象)引用只是一种别名,一种昵称。

 

const引用:

指向const对象的引用。

const int ival=209;

cons tint &refIval=ival;

 

typedef

定义类型的同义词。并没有引入新的类型。

 

头文件:

一般包含类的定义,extern变量的声明和函数的生命。为避免多重包含,使用预处理器定义头文件保护符。

#ifndef SALESITEM_H

#define SALESITEM_H

#endif

 

 

 

________________[下图:变量的类型]______________________________________________ 

 

基本类型:

                   整形: short, int, long

                   浮点型: float, double, long double

                   字符型: char

                   布尔型:

非基本类型:

                   指针

                   数组

                   结构

                   枚举

                                   

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值