C++ 入门

章节目录:

    • 一、C++ 入门
      • 1.1 程序编写
      • 1.2 注释
      • 1.3 变量
      • 1.4 常量
      • 1.5 关键字
      • 1.6 变量命名规则
    • 二、数据类型
      • 2.1 整型
      • 2.2 带符号和无符号类型
      • 2.3 sizeof 关键字
      • 2.4 实型(浮点型)
      • 2.5 字符型
      • 2.6 字符串型
      • 2.7 转义序列
      • 2.8 布尔类型
      • 2.9 类型选择建议
    • 三、获取数据输入
    • 四、结束语

一、C++ 入门

1.1 程序编写

  • C++ vesion:11

  • C++ IDECLion

  • 编写一个 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;
}

1.2 注释

  • 单行注释
// 这是单行注释。
  • 多行注释
/*
这是多行注释。
*/

1.3 变量

  • 代码示例
#include

using namespace std;

int main() {

    // 变量的定义:数据类型 变量名 = 初始值
    int a = 10;

    cout << "a = " << a << endl;
    // a = 10

    return 0;
}
  • 注意:C++ 在创建变量时,必须给变量一个初始值,否则会报错。
  • 提示初始化不是赋值,初始化的含义是创建变量时赋予其一个初始值,而赋值的含义是把对象的当前值擦除,而以一个新值来替代。
  • 如果定义变量时,没有指定初始值,则变量被默认初始化,此时变量被赋予了“默认值”。
  • 绝大多数类都支持无须显式初始化而定义对象,这样的类提供了一个合适的默认值。例如:
// empty 非显式地初始化为一个空串。
std::string empty;

1.4 常量

C++ 定义常量两种方式:宏常量和 const 修饰,用于记录程序中不可更改的数据。

  • 方式一:#define 宏常量
#include

using namespace std;

// 常量值通常在文件上方定义,表示一个常量。
// #define 常量名。
#define MONTH 12

int main() {

    cout << "MONTH = " << MONTH << endl;
    // MONTH = 12

    int MONTH = 11;
    // 语法错误:“常数”

    return 0;
}
  • 方式二:const 修饰的变量
#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;
}
  • 提示:把常量定义为大写字母形式,是一个很好的编程实践。

1.5 关键字

关键字是 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

1.6 变量命名规则

  • 标识符不能是关键字。
  • 标识符只能由字母、数字、下划线组成。
  • 第一个字符必须为字母或下划线。
  • 标识符中字母区分大小写。
  • 提示:尽量做到见名知意。

二、数据类型

C++ 规定在创建一个变量或者常量时,必须要指定出相应的数据类型,否则无法给变量分配内存。

2.1 整型

  • 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 中新定义的。

2.2 带符号和无符号类型

  • 除去布尔型和拓展的字符型之外,其他整型可以划分为带符号的( signed )和 无符号的unsigned )两种。
  • 带符号类型可以表示正数、负数或 0,无符号类型则仅能表示大于 0 的值。
  • 类型 intshortlonglonglong 都是带符号的,通过在这些类型名前添加 unsigned 就可以得到无符号类型,例如 unsinged long 。类型 unsigned int 可以缩写为 unsigned

2.3 sizeof 关键字

利用 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;
}

2.4 实型(浮点型)

表示小数。

  • 浮点型变量分为两种,区别在于表示的有效数字范围不同:
数据类型 占用空间 有效数字范围
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;
}

2.5 字符型

字符型变量用于显示单个字符。

  • 定义字符变量:
#include 

using namespace std;

int main() {
    // 注意:不能使用双引号!
    char s = 'a';
    cout << s << endl;
    // a
    return 0;
}

  • 注意事项
    • 在显示字符型变量时,用单引号将字符括起来,不要用双引号
    • 单引号内只能有一个字符,不可以是字符串。
  • 补充说明
    • C 和 C++ 中字符型变量只占用 1 个字节。
    • 字符型变量并不是把字符本身放到内存中存储,而是将对应的 ASCII 编码放入到存储单元。

2.6 字符串型

有两种方式定义字符串。

  • 方式一:C 风格定义字符串
#include

using namespace std;

int main() {

    // C 语言风格定义格式:char 变量名[] = "字符串值"
    char name[] = "jan";

    cout << name << endl;
    // jan

    return 0;
}
  • 方式二:C ++ 风格定义字符串
#include
// 这里  头文件,它会隐式地包含  头文件。

using namespace std;

int main() {

    // C++ 语言风格定义格式:string 变量名 = "字符串值"
    // 提示:这种风格定义,需要加入头文件 #include
    string name = "jan";

    cout << name << endl;
    // jan

    return 0;
}

2.7 转义序列

一些特殊含义的字符(如单引号、双引号、问号、反斜线)。需要用到转义字符,它们均以反斜线作为开始。

  • C++ 语言规定的转义序列包括:
转义序列 作用
换行符 \n
纵向制表符 \v
反斜线 \\
回车符 \r
横向制表符 \t
退格符 \b
问号 \?
进纸符 \f
报警(响铃)符 \a
双引号 \"
单引号 \'

2.8 布尔类型

布尔数据类型代表真或假的值。

  • 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;
}

2.9 类型选择建议

  • 明确数值不能为负,选用无符号类型
  • 一般使用 int 执行整数运算,如果数值超过int 范围则选用 long long
  • 算术表达式中尽量不要使用 charbool ,只有在存放字符或布尔值时才使用它们。(因为 char 在一些机器上是有符号,在一些机器上又是无符号的,使用的话可能会出现问题。)
  • 如果需要一个不大的整数,可以明确指定为 singed charunsigned 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;
}

四、结束语


“-------怕什么真理无穷,进一寸有一寸的欢喜。”

微信公众号搜索:饺子泡牛奶

你可能感兴趣的:(C++,c++,开发语言)