C++:01.概述和数据类型
记C++的笔记不要面面具细,你不可能把《C++ Primer》大部分内容搬上来,记重点,理解内容,形成知识框架
进入c++的世界
c++程序大致模板:
1 |
|
hello world!
C++标准程序库中的所有标识符都被定义于一个名为std的namespace中
为什么要使用 using namespace std;
?
有些名字容易冲突,所以会使用命名空间的方式进行区分,具体来说就是加个前缀。比如 C++ 标准库里面定义了 vector 容器,你自己也写了个 vector 类,这样名字就冲突了。于是标准库里的名字都加上 std:: 的前缀,你必须用 std::vector 来引用。
同理,你自己的类也可以加个自定义的前缀。但是经常写全名会很繁琐,所以在没有冲突的情况下你可以偷懒,写一句 using namespace std;
,接下去的代码就可以不用写前缀直接写 vector 了。但在现在的软件开发过程中,由于担心造成命名空间的污染,一般不建议直接写这句,以后再说。
一、分号
在 C++ 中,分号是语句结束符。也就是说,每个语句必须以分号结束。它表明一个逻辑实体的结束。x = y;
C++ 不以行末作为结束符的标识,因此,您可以在一行上放置多个语句x = y; y = y+1; add(x, y);
二、语句块
语句块是一组使用大括号括起来的按逻辑连接的语句
1 |
|
三、注释
//单行注释
/*
多行
注释
*/
四、空格
C++ 中,空格用于描述空白符、制表符、换行符和注释。空格分隔语句的各个部分,让编译器能识别语句中的某个元素(比如 int)在哪里结束,下一个元素在哪里开始。 为了增强可读性,您可以根据需要适当增加一些空格
五、数据类型
C++定义了一套包括算术类型(arithmetic type)和空类型(void)在内的基本数据类型。其中算术类型包含了字符、整型数、布尔值和浮点数。空类型不对应具体的值,仅用于一些特殊的场合,例如最常见的是,当函数不返回任何值时使用空类型作为返回类型。
数据类型存在的意义是:给变量分配合适的内存空间。创建一个变量或者常量时,必须要指定出相应的数据类型,否则无法分配内存
1. 算术类型
1.1 基本的算数类型
- 整型 int
- 实型(浮点型) float
- 双浮点型 double
- 字符型 char
- 布尔型 bool
- 宽字符型 wchar_t
其中,宽字符型定义:typedef short int wchar_t;所以 wchar_t 实际上的空间是和 short int 一样
各种操作系统中的变量类型在内存中占用的内存可能会不同,可以通过**sizeof
**函数获取大小。语法:sizeof(数据类型/变量)
。一般来说:short < int <= long <= long long
1.2 数据类型修饰符
一些基本类型可以使用一个或多个类型修饰符进行修饰:signed、unsigned、short、long
signed、unsigned、long 和 short 可应用于整型
long 可应用于双精度浮点型
signed 和 unsigned 可应用于字符型
修饰符 signed 和 unsigned 也可以作为 long 或 short 修饰符的前缀
1.3 整型
短整型short:占2个字节
整型int:占4个字节
长整型long:占4个字节
长长整型long long:占8个字节
1 |
|
short占据的大小:2
int占据的大小:4
long占据的大小:4
long long占据的大小:8
1.4 实型(浮点型)
单精度float,7位有效数字,占用4个字节
双精度double,15-16位有效数字,占用8个字节
科学计数法用e连接,见下面代码
1 |
|
f1=3.14,f2=3.14,f3=3.14159
d1=3.14,d2=3.14159
float占用的内存空间:4
double占用的内存空间:8
f4=300
f5=0.03
1.5 字符型
放在字符串章节中讲
1.6 布尔类型
布尔类型占1个字节,要么为真,要么为假
1 |
|
1
0
bool类型所占据的内存空间:1
1
typedef 声明可以为一个已有的类型取一个新的名字,
语法:typedef type newname;
1 |
|