刚开始把握一门语言时,会应用一些根本的类型,进行一些常见的运算,而如果要写一些算法,比方数字累加和,计算面积,还须要应用到一些循环语句和条件判断,C++ 都提供了具体的标准。
类型
类型零碎是语言的基石,C++ 的类型零碎包含根本类型和混合类型。严格来说,课程中介绍了根本算术类型(arithmetic type),包含浮点类型,整数类型,布尔类型和字符类型。
整型细分有很多种,int
是最罕用的整型,依据长度还分为 int
, short int
, long int
, long long int
, 依据是否有符号,又能够划分未 signed int
unsigned int
等,因而共计 8 种类型, 有一些写法是等价的。
浮点类型,次要为float
,double
和 long double
,浮点都有符号。
布尔类型,就是bool
字符类型,次要为 char
,依据是否有符号,分为signed char
和 unsigned char
,罕用的共计两种,实际上还有宽字符。
通常,这些类型的长度在标准里没有规定,用 sizeof(类型)
能够计算出来,且满足如下条件:
1 == sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long) <= sizeof(long long)
变量
常量 和 变量 有了数据类型之后,就能够参加运算。变量是能够发生变化的值,常量是不能够变动的值。
变量须要通过 类型 变量名
进行申明,而后 最好进行初始化。例如 :
int a;
a = 3;
常量 是间接示意的值,不能够扭转,比方
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
进行输出和输入。