C++ vesion:11
C++ IDE:CLion
编写一个 C++ 程序总共分为 4 个步骤:
第一段代码:
#include
/*
在 C++ 中,std 是一个重要的命名空间,代表标准库(Standard Library)。
标准库是 C++ 提供的一个丰富的函数、类和模板集合,提供了许多常用的功能和工具,包括输入输出、容器、算法、字符串处理、数学函数等。
它类似于 Java 中的 java.lang 包,其中包含了 Java 的核心类。
*/
using namespace std;
int main() {
// 在 C++ 中,std::cout 是用于标准输出的流对象,类似于 Java 中的 System.out。
// `<<` 为输出运算符。
// endl:表示换行并刷新输出流,类似于 "\n" 。
cout << "Hello world" << endl;
return 0;
}
// 这是单行注释。
/*
这是多行注释。
*/
#include
using namespace std;
int main() {
// 变量的定义:数据类型 变量名 = 初始值
int a = 10;
cout << "a = " << a << endl;
// a = 10
return 0;
}
// empty 非显式地初始化为一个空串。
std::string empty;
C++ 定义常量两种方式:宏常量和
const
修饰,用于记录程序中不可更改的数据。
#include
using namespace std;
// 常量值通常在文件上方定义,表示一个常量。
// #define 常量名。
#define MONTH 12
int main() {
cout << "MONTH = " << MONTH << endl;
// MONTH = 12
int MONTH = 11;
// 语法错误:“常数”
return 0;
}
#include
using namespace std;
int main() {
// const 数据类型 常量名 = 常量值
// 通常在变量定义前加关键字 `const`,修饰该变量为常量,不可修改。
const int MONTH = 12;
cout << "MONTH = " << MONTH << endl;
// MONTH = 12
const int MONTH = 11;
// error: redefinition of 'MONTH'
return 0;
}
关键字是 C++ 中预先保留的单词。(标识符)
asm |
do |
if |
return |
typedef |
---|---|---|---|---|
auto |
double |
inline |
short |
typeid |
bool |
dynamic_cast |
int |
signed |
typename |
break |
else |
long |
sizeof |
union |
case |
enum |
mutable |
static |
unsigned |
catch |
explicit |
namespace |
static_cast |
using |
char |
export |
new |
struct |
virtual |
class |
extern |
operator |
switch |
void |
const |
false |
private |
template |
volatile |
const_cast |
float |
protected |
this |
wchar_t |
continue |
for |
public |
throw |
while |
default |
friend |
register |
true |
|
delete |
goto |
reinterpret_cast |
try |
C++ 规定在创建一个变量或者常量时,必须要指定出相应的数据类型,否则无法给变量分配内存。
数据类型 | 占用空间 | 取值范围 |
---|---|---|
short (短整型) |
2 字节 | (-2^15 ~ 2^15-1) |
int (整型) |
4 字节 | (-2^31 ~ 2^31-1) |
long (长整型) |
Windows 为4字节,Linux 为4字节(32位),8字节(64位) | (-2^31 ~ 2^31-1) |
long long (长长整型) |
8 字节 | (-2^63 ~ 2^63-1) |
long
long
是在 C++ 11 中新定义的。signed
)和 无符号的( unsigned
)两种。int
、short
、long
和 long
、long
都是带符号的,通过在这些类型名前添加 unsigned
就可以得到无符号类型,例如 unsinged
long
。类型 unsigned
int
可以缩写为 unsigned
。利用
sizeof
关键字可以统计数据类型所占内存大小。
sizeof( 数据类型 / 变量)
#include
using namespace std;
int main() {
cout << "short size=" << sizeof(short) << endl;
// short size = 2
cout << "int size=" << sizeof(int) << endl;
// int size = 4
cout << "long size=" << sizeof(long) << endl;
// long size = 4 (win)
// long size = 8 (unix)
cout << "long long size=" << sizeof(long long) << endl;
// long long size = 8
return 0;
}
表示小数。
数据类型 | 占用空间 | 有效数字范围 |
---|---|---|
float |
4字节 | 7位有效数字 |
double |
8字节 | 15~16位有效数字 |
#include
using namespace std;
int main() {
// 定义单精度、双精度实型。
float f_num = 0.3f;
cout << "float size =" << sizeof(f_num) << endl;
// float size =4
double d_num = 0.4;
cout << "double size =" << sizeof(d_num) << endl;
// double size = 8
// 科学计数。
float num1 = 3e-1;
cout << "num1 =" << num1 << endl;
// num1 =0.3
return 0;
}
字符型变量用于显示单个字符。
#include
using namespace std;
int main() {
// 注意:不能使用双引号!
char s = 'a';
cout << s << endl;
// a
return 0;
}
有两种方式定义字符串。
#include
using namespace std;
int main() {
// C 语言风格定义格式:char 变量名[] = "字符串值"
char name[] = "jan";
cout << name << endl;
// jan
return 0;
}
#include
// 这里 头文件,它会隐式地包含 头文件。
using namespace std;
int main() {
// C++ 语言风格定义格式:string 变量名 = "字符串值"
// 提示:这种风格定义,需要加入头文件 #include 。
string name = "jan";
cout << name << endl;
// jan
return 0;
}
一些特殊含义的字符(如单引号、双引号、问号、反斜线)。需要用到转义字符,它们均以反斜线作为开始。
转义序列 | 作用 |
---|---|
换行符 | \n |
纵向制表符 | \v |
反斜线 | \\ |
回车符 | \r |
横向制表符 | \t |
退格符 | \b |
问号 | \? |
进纸符 | \f |
报警(响铃)符 | \a |
双引号 | \" |
单引号 | \' |
布尔数据类型代表真或假的值。
bool
类型只有两个值:
true
:表示真。
false
:表示假。
bool
类型占 1 个字节大小。
代码示例:
#include
using namespace std;
int main() {
// 定义 bool 变量,初始值设置为 true。
bool flag = true;
cout << flag << endl;
// 1
// 再次赋值为 false。
flag = false;
cout << flag << endl;
// 0
// bool 变量所占字节大小。
cout << "bool size =" << sizeof(flag) << endl;
// bool size =1
return 0;
}
int
执行整数运算,如果数值超过了 int
范围则选用 long
long
。char
或 bool
,只有在存放字符或布尔值时才使用它们。(因为 char
在一些机器上是有符号,在一些机器上又是无符号的,使用的话可能会出现问题。)singed
char
或 unsigned
char
。double
。(因为 float
通常精度不够且两种精度计算代价差距较小。)long
double
提供的精度在一般情况下是没有必要的,并且它带来的运算开销也不能忽视。
cin >> 变量
用于从键盘获取数据。
#include
using namespace std;
int main() {
string name;
cout << "input name:" << endl;
// 接收输入。
cin >> name;
cout << "hello " + name << endl;
// input name:
// jan
// hello jan
return 0;
}
“-------怕什么真理无穷,进一寸有一寸的欢喜。”
微信公众号搜索:饺子泡牛奶。