C++ 基础_Day01

准备工具Vscode或者Clion或者Dev C++或者Vs studio 和
MSYS2 是C++跨平台的重要工具链.

文章目录

  • 准备工作
      • 安装MSYS2
      • 软件
    • 创建文件
  • 一、基本介绍
    • 1.1C++源文件
    • 1.2 代码注释
    • 1.3变量与常量
      • 1.3.1变量
      • 1.3.2 常量
      • 1.3.3 二者的区别:
    • 1.4 关键字和标识符
  • 二、数据类型
    • 2.1 基本数据类型:
      • 2.1.1整型:
      • 2.1.2 浮点型 (实数):
      • 2.1.3 字符型 (char 1个字节):
        • 2.1.3.(1)转义字符
      • 2.1.4 布尔型 (bool):
    • 2. 2 用户定义数据类型(后续):
    • 2.3 字符串型
    • 2.4 数据键入
  • 三、运算符

准备工作

安装MSYS2

C++ 基础_Day01_第1张图片
C++ 基础_Day01_第2张图片
C++ 基础_Day01_第3张图片
pacman -S mingw-w64-ucrt-x86_64-gcc 后Y

最后用cmd gcc --version

C++ 基础_Day01_第4张图片
环境变量添加进去:
在这里插入图片描述

软件

CLion

创建文件

右击–New–C/C++ Source File
C++ 基础_Day01_第5张图片
C++ 基础_Day01_第6张图片

一、基本介绍

1.1C++源文件

该文件一般是以.cpp 或者 .cxx 后缀结尾的。

#include
using namespace std;
// main有且仅有一个
int main() {

	cout << "Hello C++__world" << endl;
	//system("pause");
	return 0;
}

在这里插入图片描述
main 函数只包含一行代码:这个单条语句是以 std 开头,然后以一个分号(;)作为结尾
的。

1.2 代码注释

注释是一种编写代码时用来解释程序的作用和用途的特殊语句,编译器会自动检测并忽略,注释并不对程序功能产生任何影响。

格式:
(1)单行注释: // 后接对代码的描述
放置在代码上方,或者代码语句结束的结尾较好。

(2)多行注释:/*多行注释*/
这个由于可能代码篇幅可能较长,所以推荐写在整体的上方。

1.3变量与常量

1.3.1变量

给一段指定的内存空间起名,方便操作这段内存

语法数据类型 变量名 = 初始值;

注意:最好是在定义的时候,给变量赋初值。因为变量是在操作指定的内存空间,在定义变量的时候,会找某一空间,却不可保证改空间原先的值是没有的。

#include
using namespace std;

int main() {
	//最好是在定义的时候,给变量赋初值。
	int a = 5;
	//带有中文输出的内容,需要把编码格式改为GBK
	cout << "a 的值= " << a << endl;
	
	system("pause");

	return 0;
}

1.3.2 常量

不随任何的行为而改变自身数据

语法
(1)#define 宏定义 #define 常量名 常量值
源文件的上方定义的

(2)const 修饰的变量 const 数据类型 常量名 = 常量值
被const修饰该变量为常量,不可修改

1.3.3 二者的区别:

虽两种方式都可以用来定义常量,但仍存在一些区别:

  1. #define 宏常量:

    • 使用预处理指令,简单替换,没有类型检查。
    • 不占用内存,直接替换为常量值(是简单的文本替换,它将符号替换成相应的文本; 即:#define 定义的常量没有分配存储空间,没有对应的地址)。
    • 可以定义函数、表达式等,不仅仅限于常数(define可以采用表达式作为名称)。
    • 宏不受作用域限制,全局可用。
  2. const修饰的变量:

    • 是真正的变量,具有数据类型,会占用内存。(因为const 定义的常量在内存中分配了存储空间,可以获取其地址
    • 提供类型安全,编译器会进行类型检查。
    • 有作用域限制,遵循普通变量的作用域规则。
    • 更推荐,因为具有类型信息,易于维护和调试。

通常情况下,推荐使用 const 修饰的变量来定义常量,因为它更具类型安全性和可读性。

1.4 关键字和标识符

C++中的关键字是指具有特殊含义的保留单词,例如"int"和"if"

在给变量或者常量起名称时候,不要用C++得关键字,否则会产生歧义。

C++ 基础_Day01_第7张图片

标识符是程序员定义的用于命名变量、函数等的名称。 给标识符命名时,争取做到见名知意的效果,方便自己和他人的阅读

  • 标识符不能是关键字
  • 标识符只能由字母、数字、下划线组成
  • 第一个字符必须为字母或下划线
  • 标识符中字母区分大小写

二、数据类型

C++中的数据类型可以分为
好的,我会继续介绍C++中常见的基本数据类型和用户定义数据类型。

2.1 基本数据类型:

检验类型大小 ` sizeof(数据类型、变量) `

C++是一种静态类型语言,这意味着在创建变量或常量时必须明确指定其数据类型。编译器需要在编译时确定每个变量的数据类型,以便正确分配内存并执行相应的操作。

如果不指定数据类型,编译器将无法正确处理变量的内存分配和操作,因此必须明确定义数据类型。

2.1.1整型:

用于表示整数类型的数据,可以是正数、负数或零。区别在于存储的空间大小不同 

short < int <= long <= long long

short:2字节 -2^15 - 2 ^15 -1
int :4字节 -2^31 - 2 ^31 -1
long:在32位系统上通常4字节, 在64位系统上通常8字节, -2^31 - 2 ^31 -1
long long :8字节 -2^15 - 2 ^63 -1

2.1.2 浮点型 (实数):

用于表示带有小数的数值,其中`float`表示单精度浮点数,而`double`表示双精度浮点数。
  1. float:

    • float 是一种单精度浮点数数据类型,通常占用4字节(32位),可以存储大约7位有效数字。
    • 使用 f 后缀来明确指定一个浮点数为 float 类型,如 3.14f
  2. double:

    • double 是一种双精度浮点数数据类型,通常占用8字节(64位),可以存储大约15-16位有效数字。
  3. 科学计数法:

    • C++支持科学计数法来表示浮点数,使用形如 aeb 的表示法,其中 a 是系数,e 是底数为10的指数,b 是指数的符号。例如,3e2 表示 (3 *10^2),即300;0.03 可以写作 3e-2 表示 (3 *10^(-2))。

示例:

float pi = 3.14f; // 使用 f 后缀指定 float 类型
double largeNumber = 1.234567890123456789; // 默认为 double 类型

float a = 3e2; // 表示 300
float b = 3e-2; // 表示 0.03

2.1.3 字符型 (char 1个字节):

作用: 用于表示单个字符,以ASCII编码1为基础。

语法: char ch = 'a';

注意
( 1 )用单引号括起字符,示例:char myChar = 'A';
( 2 )单引号内只能包含一个字符,不能是字符串,示例:char myChar = 'AB'; 是不允许的,应该是 char myChar = 'A';
( 3 )字符型变量(char)在C和C++中通常占用1个字节(8位),无论是用于存储字符本身还是对应的ASCII码。

2.1.3.(1)转义字符

用于表示一些不能显示出来的ASCII字符

转义字符是在字符前面加上反斜杠(\)来表示一些特殊字符或操作,通常用于在字符串或字符常量中插入不易直接输入的字符。

常用的转义字符有: \n \\ \t

2.1.4 布尔型 (bool):

布尔类型(bool)是一种用于表示真(true)或假(false)的数据类型,在C++中占用1个字节大小。它是用来做逻辑判断的基本类型。

bool flag = true;
	cout << flag << endl; // 1

	flag = false;
	cout << flag << endl; // 0

	cout << "size of bool = " << sizeof(bool) << endl; //1

2. 2 用户定义数据类型(后续):

  • 结构体 (struct): 允许创建包含多个不同数据类型的组合体,可以通过结构体定义多个变量来描述一个实体的属性。
  • 类 (class): 允许创建具有成员变量和成员函数的自定义数据类型,实现了面向对象编程的概念,包括封装、继承和多态。
  • 枚举类型 (enum): 允许创建一个包含一组命名常量的新数据类型。
  • 共用体 (union):共用体允许在同一内存位置存储不同的数据类型。这意味着共用体的成员共享内存,修改一个成员会影响到其他成员。
  • typedef 定义的类型:typedef 是用来为现有类型定义新的名称,提高代码的可读性和可维护性。

2.3 字符串型

在C++中,字符串类型可以属于两种类型:普通类型和用户定义类型,具体取决于使用的字符串表示方式。

  1. 普通类型(延续C语言风格):

    • 在C++中,可以使用字符数组(char array)或指向字符的指针来表示字符串。这种方式属于普通类型,没有特定的用户定义类型,它们是C和C++的基本字符串表示方式。
    char str1[] = "Hello, world!";  // 字符数组表示字符串
    char* str2 = "Hello, world!";    // 字针表示字符串
    
  2. 用户定义类型:

    • 另一方面,C++也提供了标准库中的 std::string 类,这是一个用户定义的字符串类型。std::string 是一个类,提供了丰富的字符串操作功能和方便的字符串管理。
    #include 
    
    std::string str = "Hello, world!";  // 使用 std::string 类型
    

std::string 是C++标准库中的一部分,它提供了很多方便的字符串处理方法,例如字符串拼接、查找、替换等操作,使得字符串处理更方便和高效。

因此,字符串可以是普通类型(字符数组或指针)或用户定义类型(std::string),具体取决于你选择的字符串表示方式。如果需要更多信息或有其他问题,请随时提出。

2.4 数据键入

作用:用于从键盘获取数据

关键字: cin

语法: cin >> 变量

cin通常与运算符>>一起使用,用于将输入的数据存储到指定的变量中。这样可以方便地从用户那里接收输入,并在程序中进行处理

int x = 0;
	cout << "请输入整型变量x的值:" << endl;
	cin >> x;
	cout << x << endl;

三、运算符

C++ 基础_Day01_第8张图片
注意(1) 两个小数不可做取模运算,结果看左边

	int a3 = 10;
	int b3 = 0;
	//报错,除数不可以为0
	//cout << a3 / b3 << endl; 
 
  // 两个小数不可做取模运算,结果看左边
  //  除数不为0
  cout << -10 % 3 << endl; //-1
  cout << 10 % 3 << endl;  // 1

//两个小数可以相除
	double d1 = 0.5;
	double d2 = 0.25;
	cout << d1 / d2 << endl;

(2)赋值是‘=’ 等于是‘==’

算术运算符
C++ 基础_Day01_第9张图片
赋值运算符
C++ 基础_Day01_第10张图片
比较运算符
C++ 基础_Day01_第11张图片

逻辑运算符
C++ 基础_Day01_第12张图片


  1. ASCII(American Standard Code for Information Interchange)编码将每个字符映射到一个唯一的整数。例如,字母 ‘a’ 对应的ASCII码是97。因此,当你在C或C++中创建一个字符型变量时,实际上是将该字符对应的ASCII码存储在内存中。 ↩︎

你可能感兴趣的:(L.的C++学习之路,c++,开发语言)