notes of c++ primer (1)

● Some tips
1、标准C++中,如果main()函数没有显式地提供返回语句,则缺省返回0
2、标准C++头文件没有后缀,这是个例外。
3、iostream操作符执行的是一个操作,而不是简单地提供数据。比如:endl在输出流中插入一个换行符,然后再刷新输出缓冲区。

● 预处理
1、由于存在嵌套包含文件的可能,一个头文件可能会多次包含在一个源文件中。条件指示符可以防止这种头文件的重复处理。
例如: 条件指示符#ifndef、#ifdef皆可用来检查预编译常量是否被定义过。
2、assert()是C语言标准库中提供的一个通用预处理器宏。在代码中常利用assert()来判断一个必须的前提条件,以便程序能正常执行。与之相关的头文件:
#include <assert.h>
assert.h是C库头文件的C名字,C++程序可以通过C库的C名字或C++名字来使用。这个头文件的C++名字是cassert
#include <cassert>

● 文字常量
1、文字常量是不可寻址的。尽管他的值也存储在机器内存的某个地方,但是我们没有办法访问他们的地址。
2、整型文字常量被当作是一个int型的有符号值。在文字常量后面加一个L或l可指定其为long类型,加上U或u指定为无符号数。在文字常量前面加一个0,将值解释为八进制数,在前面加一个0x或0X则将其解释为十六进制数。
3、浮点型文字常量缺省情况下为double型。
4、单词true和false是bool型文字常量。
5、可打印的文字字符常量,可以写成单引号括起来的形式。
6、字符串文字常量是由零个或多个用双引号括起来的字符组成。
字符串文字常量的类型是常量字符数组。它由字符串文字本身以及编译器加上的表示结束的空字符null构成。

●变量
1、变量实际上是提供一个有名字的内存存储区,可以通过程序对其进行读、写和处理。
2、变量是可寻址的(addressable),对于每一个变量,都有两个值与之关联:
(1)他的数据值。存贮在某个内存中。这个值又被称为对象的右值(rvalue)。也可认为右值是被读取的值(read value)
(2)他的地址值,即数据存储区的那块内存地址。也被称为对象的左值(lvalue)。
3、变量的定义会引起相关内存的分配。这也是变量只能被定义一次的原因。因为一个对象只能有一个位置,所以程序中的每个对象只能被定义一次。变量的声明不会引起内存的分配,只是说明在程序之外的某个地方有此变量的定义。
4、对象声明(declaration)的作用是使程序知道对象的类型和名字。由关键字extern以及跟在后面的对象类型及对象名字构成。
5、变量的初始化问题:
(1)一个简单的定义指定了变量的类型和标识符,它并不提供初始值;
(2)如果变量是在全局域里定义的,系统会保证给他提供初始值0;
(3)如果变量在局部域或通过new表达式动态分配,系统不会提供初始值0。这些对象是未初始化的;
(4)未初始化的对象不是没有值,而是他的值是未定义的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值