C++ Primer(一)

原创 2016年08月31日 11:05:22

变量

1.变量类型

1. 常用的C++算术类型
type meaning minimum size
bool boole type undifine
char character type 8 byte
int integer type 16 byte
long long integer 32 byte
long long longer long integer 64 byte
float single precision float 6 significant number
double double precision float 10 significant number
2. 类型转换
  • 非boole类型的算术值赋给boole类型时,初始值为0则结果为false,初始值不为0时则结果为true。
  • boole类型的算术值赋给非boole类型时,false的结果为0,true的结果为1。
  • 浮点数类型的算术值赋给整型时,结果向下取整。
  • 整型的算术值赋给浮点数类型时,小数部分为0.
  • 给无符号类型赋一个超出其表示范围的值时,结果为初始值模无符号类型能表示数值总数取整后的值。

例如,8 byte大小的unsigned char可以表示0281=255区间内的所有值,如果赋予其一个超出区间的值,则结果是该值模256。因此如果把1赋值给一个unsigned char,那么结果是

(1)mod256=255

    unsigned u = 10, u2 = 42;
    cout << u2 - u << endl;
    cout << u - u2 << endl;
    unsigned u = 10, u2 = 42;
    cout << u2 - u << endl;
    cout << u - u2 << endl;
    int i = 10, i2 = 42;
    cout << i2 - i << endl;
    cout << i - i2 << endl;
    cout << i - u << endl;
    cout << u - i << endl;
    cout << i - u2 << endl;
    cout << u2 - i << endl;

只有u-u2i-u2是有unsigned类型参与的运算但结果为负数,因此需要取232=4294967296的模,均为4294967264

2. 变量初始化

3. 变量标识符(变量名)

C++对于变量标识符必须由数字、字母和下划线组成。
标识符必须以下划线或者是字母开头,标识符长度无限制,大小写敏感。
命名法则(Camel Case):变量标识符应当反应出变量的实际含义;第一组单词全部小写,以后的每个单词首字母大写。

int salesProfit;//这是一个好的变量名,符合Camel法则
int a,b;//这是一个坏的变量名

4.名字的作用域

5.引用

引用类型引用另外一种类型,通过将声明符写作&d的形式来定义引用类型,其中d是声明的新变量名。

int ival=1024;
int &refVal=ival;       //refVal是ival的另一个名字
int &refval2;           // Error:reference must be initialized.

Note
- 一般在初始化变量的时候,初始值会被拷贝到新建的对象中。
- 然而在定义引用时,程序把引用和它的初始值绑定在一起,而不是把初始值拷贝给引用,一旦初始化完成,引用将和它的初始值一直绑定在一起。
- 因为无法将引用重新绑定到另一个对象。

    int ival = 12,uval=10;
    int &refVal = ival;
    cout << "refVal=" << refVal << '\0' << "ival=" << ival << endl;
    //输出 refVal=12 ival=12
    refVal = uval;
    cout << "refVal=" << refVal << '\0' << "ival=" << ival << endl;
    //输出 refVal=10 ival=10
    return 0;

可以看出一旦对引用初始化以后,一改全改,对引用的任何操作都看作对于初始值的操作。

版权声明:本文为博主原创文章,未经博主允许不得转载。

c++ primer第五版(中文)习题答案 第一章-开始

本博客知识记录自己学习中的笔记或者记录,如果有错误欢迎大家纠正。 写完第十章习题,开始从头开始,把前面的习题全部完成,书也顺序看下去。习题解答 1.1 查阅你使用的编译器的文档,确定它所使用的文件命...
  • xhxwd
  • xhxwd
  • 2015年10月22日 22:12
  • 6898

c++primer(第五版) 第十一章 关联容器习题答案

纯原创    转载请注明出处:http://blog.csdn.net/axuan_k 11.1    11.2     11.4 #include #include #inc...
  • AXuan_K
  • AXuan_K
  • 2016年03月07日 12:57
  • 1086

C++ Primer Plus第六版 第十一章 编程练习答案

//第一题 //windows下\r\n在txt中是换行...被坑了= = //vector.h #ifndef VECTOR_H_ #define VECTOR_H_ #include name...
  • zhaoshu01234
  • zhaoshu01234
  • 2015年09月26日 10:54
  • 1747

c++ primer 13.22练习(值行为的类)

13.22 #include #include #include #include using namespace std; class HashPtr{ public: HashPtr...
  • WJSZMD
  • WJSZMD
  • 2018年01月17日 13:41
  • 7

c++ primer 读书笔记四

2.3.2指针 指针本身就是一个对象,允许对指针赋值和拷贝,而且在指针的生命周期内它可以先后指向几个不同的对象。 指针无须在定义是赋值。和其他内置类型一样,在块作用域内定义的指针如果没有被初始化,...
  • sinat_37339643
  • sinat_37339643
  • 2018年01月15日 22:51
  • 3

《C++ Primer》读书笔记目录

目录:笔记会持续更新,有错误的地方欢迎指正,谢谢!第I部分 C++基础第一章:开始第二章:变量和基本类型-基本内置类型和变量第二章:变量和基本类型-复合类型和const限定符第二章:变量和基本类型...
  • BillCYJ
  • BillCYJ
  • 2017年12月27日 17:39
  • 450

C++ Primer学习笔记——$19 多重继承与虚继承

题记:本系列学习笔记(C++ Primer学习笔记)主要目的是讨论一些容易被大家忽略或者容易形成错误认识的内容。只适合于有了一定的C++基础的读者(至少学完一本C++教程)。  作者: tyc611,...
  • whycold
  • whycold
  • 2011年01月19日 15:13
  • 684

C++ primer ————————————“单词转换" map 对象

#include #include #include #include #include #include /* 单词转换 :给出一个string 对象 转换成另一个string对...
  • a15743239832
  • a15743239832
  • 2013年06月05日 23:55
  • 812

C++ Primer 学习笔记_64_满载操作符与转换 -转换与类类型【下】

重载操作符与转换 --转换与类类型【下】 四、重载确定和类的实参 在需要转换函数的实参时,编译器自动应用类的转换操作符或构造函数。因此,应该在函数确定期间考虑类转换操作符。函数重载确...
  • u011744843
  • u011744843
  • 2016年05月07日 09:43
  • 314

2012/1/9 《C++ Primer Plus》第三章:处理数据 学习笔记

《C++ Primer Plus》第三章学习笔记   11:以两个下划线或下划线和大写字母打头的名称被保留给实现(编译器及其使用的资源)使用。以一个下划线开头的名称被保留给实现,用作全局标识符。 ...
  • Zyearn
  • Zyearn
  • 2012年01月14日 10:12
  • 659
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++ Primer(一)
举报原因:
原因补充:

(最多只允许输入30个字)