C++(一)基础回顾

最近想了很多啊,发现自己一直还是太浮躁,我弄了很多东西,php/java/c#/html5css/unity/qt/wpf/android…..但是没有一个是精通的,都是大致了解了一下然后就跪了。感觉有必要好好面壁了……然后就有了这个计划。

一.基本概念

int a=10或int a(10)或int a{10}(初始化列表方法,C++11最新语法)

<<:插入操作符

<<:提取操作符

源文件代码扩展名:.cpp或.cc

头文件代码扩展名:.h或.hpp

命名空间:大项目有很多程序员,可能会对不同的变量使用相同的变量名,命名空间用来区分不同的开发人员的命名空间,而C++标准库的命名空间是std(难怪每个程序都会有一个using namespace std;

STL(标准模板库)是标准库的子集,其包含大量类模板。

编译原理:编译器将cpp文件转换为对象文件,再由链接程序把所以对象文件和库函数等库文件整合起来生成可执行文件。

十六进制数:加0x或0X

负的二进制数怎么表示?设置符号位:

符号位是最左边的那一位。十进制数-8:使用负数的2的补码形式化成二进制数为:11111000

八进制:当计算机内存用36位字来衡量的时候八进制数很有用,可以把36位的二进制指定为12个八进制数字。不过这是很久以前的事情了。前导加0

Big-Endian(最重要的8位存储在地址最高位)和Little-Endian系统(最重要的8位存储在地址最低位)。

通用字符集UCS,代码32位,提供超20亿不同代码值。

Unicode:是一个标准,定义了一组字符和代码点(与UCS)相同,代码点值从0到0X10ffff。,提供多个编码方式,最常用的编码是UTF-8和UTF-16。

C++源字符是什么?三字符序列呢?

转义序列

运行如下程序:

#include “stdafx.h”
#include <iostream>
using namespace std;
int main()
{
cout << “\”Least\’said\’\\\n\t\tsoonest\’mended\’.\”” << endl;
system(“pause”);
return 0;
}

得到结果:”Least’said’\
soonest’mended’.”

思考!

二.基本数据类型

整数类型字节数:signed char(1)short/short int(2)int(4)long/long int(4)long long/long long int(8)

无符号整型加unsigned关键字,long类型后缀L,longlong则LL。组合的如UL,LU

整型字面量:整数的本身,十六进制的整型字面量用来描述RGB颜色,如0XFFFFFF表示白色。

size of运算符:得到某个字节数。

static_cast<>静态显式强制类型转换。

使用字符变量

wchar_t:一种基本类型

char16_t:UTF16编码

char32_t:UTF32编码

标准库里还提供了标准输入输出流wcin和wcout,来读写用于wchar_t类型的字符。

auto关键字:告诉编译器应该推断其类型。

lvalue和rvalue:b=++a(lvalue)b=a++(rvalue)

三.处理基本数据类型

运算符的优先级和相关性(结合性)

按位运算符,移位运算符(<<和>>)

注意:按位移动带符号的整数:向右移负整数的位,除去符号位,空出来的位补1,正整数补0。
按位反:~

按位与:&(常用于选择整数中特定的一个位或一组位)和关闭位/掩码

按位异或:^(用于图形编程,异或绘图)0xff0000

按位或:|(常用于选择整数中特定的多个位或一组位)

枚举类型:

enum class Day{Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday};Monday到Sunday值0-6

enum class Day{Monday=1,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday};Monday到Sunday值1-7

enum class punctuation:char{Comma=’,’,Exclamation=’!’,Question=’?’};

 

size_t 类型定义在cstddef头文件中,该文件是C标准库的头文件stddef.h的C++版。它是一个与机器相关的unsigned类型,其大小足以保证存储内存中对象的大小。
例如:bitset的size操作返回bitset对象中二进制位中的个数,返回值类型是size_t。
例如:在用下标访问元素时,vector使用vector::size_type作为下标类型,而数组下标的正确类型则是size_t。vector使用的下标实际也是size_t,源码是typedef size_t size_type。

发表评论

电子邮件地址不会被公开。 必填项已用*标注