刚开始掌握一门语言时,会使用一些基本的类型,进行一些常见的运算,而若是要写一些算法,好比数字累加和,计算面积,还须要使用到一些循环语句和条件判断,C++ 都提供了详细的规范。python
类型系统是语言的基石,C++ 的类型系统包括基本类型和混合类型。严格来讲,课程中介绍了基本算术类型(arithmetic type),包括浮点类型,整数类型,布尔类型和字符类型。c++
整型细分有不少种,int
是最经常使用的整型,根据长度还分为 int
, short int
, long int
, long long int
, 根据是否有符号,又能够划分未 signed int
unsigned int
等,所以共计8种类型, 有一些写法是等价的。算法
浮点类型,主要为float
,double
和 long double
,浮点都有符号。spa
布尔类型,就是bool
设计
字符类型,主要为char
,根据是否有符号,分为signed char
和 unsigned char
,经常使用的共计两种,实际上还有宽字符。调试
一般,这些类型的长度在规范里没有规定,用 sizeof(类型)
能够计算出来,且知足以下条件:code
1 == sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long) <= sizeof(long long)
常量 和 变量 有了数据类型以后,就能够参与运算。变量是能够发生变化的值,常量是不能够变化的值。对象
变量须要经过类型 变量名
进行声明,而后 最好进行初始化。例如 :blog
int a; a = 3;
常量 是直接表示的值,不能够改变,好比ci
10,0xaa,077 //能够用多种进制的方式表示证书常量 3.14 ,0.1E+2 //表示浮点数 true,false //表示bool 'a' 'b' '\n' //表示字符 “abcd" // c风格的字符串常量,隐含'\0'结尾,不推荐
常量也能够用符号常量来表示,就是给常量一个名称,方便使用
const double Pi = 3.1415926535;
有了类型和变量,能够用一些运算符 进行运算,构成表达式或者语句。
和其余语言基本没有区别,常见算术运算是加减乘除取余和赋值,须要注意优先级,记不住优先级有歧义的时候就加括号。
逗号运算,就是把两个表达式,放在一条语句里执行,结果是第二个表达式。
a= 1+1,a*3 整个表达式的结果为6
关系运算,就是比较,逻辑运算,就是 与或非
sizeof运算,是表示某个类型所占的字节数:
sizeof(int)
运算的时候要注意优先级,和其余语言差很少。
类型转换,c++中两个不一样类型的变量进行运算时,一般会进行隐式类型的转换,须要注意反作用。而若是进行显示类型的转换,一般有以下写法:
long b = 10l; int a = (int) b int a = int(b) int a = static_cast<int> b
一般了解一门新语言,都要学标准输入和标准输出。写一个helloworld。标准输出能够用于调试,标准输入实践中不太经常使用。C++ 的输入和输出是面向对象的设计,把输入和输出的来源和目标设计为对象,经过流
对象传输数据。其中内置了标准输入流对象 cin,和标准输出的流对象 cout ,相似于System.out
, System.in
。而且这两个对象提供了插入操做符<<
>>
, 输出对象,并且能够进行链式操做。
cout << “Hello" << "world"; int a, b; cin >> a >> b
等价于
System.out.print("Hello"); System.out.print("world"); int a, b; Scanner scanner = new Scanner(System.in); a = scanner.nextInt(); b = scanner.nextInt();
if
和 switch
时最经常使用的条件语句
if ( a > b) { cout << a << endl; }
switch(a) { case 1: cout << "1"; break; case 2: cout << "a"; break; default: cout << "default"; }
经常使用的循环有三种while
do while
for
int i = 1; while(i<=10) { cout << i << " "; i = i + 1; }
int i = 1; do { cout << i << " "; i = i + 1; } while (i <= 10)
for (int i = 1 ; i <= 10; i++) { cout << i << " "; }
这些循环和判断之间能够互相嵌套,经过continue 和 break 能够控制是否跳出或者继续循环
使用 typedef
或 using
能够自定义类型名称
typedef int MyInt; using MyInt = int; MyInt a = 10; MyInt a = MyInt(10);
能够定义枚举类型 enum
,这个和c 或者 go的从差很少,枚举中的每一个变量的值是int,会有一个名称,转字符串须要手动实现。还有一种限定做用范围的枚举(class enum)
enum Weekday {SUN=7,MON=1,TUE,WEB,THU,FRI,SAT}; enum Weekday a = TUE; cout << int(a) << endl; // 限定做用范围,使用枚举的时候要带上枚举类的名称 class enum Weekday {SUN=7,MON=1,TUE,WEB,THU,FRI,SAT}; enum Weekday a = Weekday::TUE; cout << int(a) << endl;
auto 和 decltype 用于支持类型推导,一般咱们说c++是强类型,赋值的时候不能像python同样自动推导,auto 就能够根据上下文自动推导类型。而decltype
能够根据变量类型进行推导。
int a = 1; int b = 2; auto c = a + b; // 那么c的类型自动为 int decltype(c) d; // 那么d的类型和c同样
综上所述,C++ 的基本类型有整型、浮点、布尔和字符,判断语句if
,switch
, 循环语句for
,while
,do while
,而且支持枚举,自动类型(auto),而且可使用内置的cin
,cout
进行输入和输出。