当前位置 博文首页 > Augenstern_QXL的博客:C++基础入门(一)

    Augenstern_QXL的博客:C++基础入门(一)

    作者:[db:作者] 时间:2021-08-15 13:32

    C++基础入门(一)

    0.写在前面

    1. 如果你是期末时间紧张冲刺型选手,请移步:C++期末复习超详细总结知识点(期末冲刺)
    2. 如果你是时间充足型选手,请按顺序依次学习!
    3. 本篇笔记视频讲解地址:https://www.bilibili.com/video/BV1et411b73Z?p=1
    4. 笔记配合视频效果更好
    5. 外链图片上传失败已经解决,手动校正,如有错误和遗漏,可私信与评论进行指正,看到了会及时更改
    6. 与各位共勉
    7. 用来复习回顾使用
    8. 顺序如下
    • 《黑马程序员》C++基础入门(一)
    • 《黑马程序员》通讯录管理系统实战
    • 《黑马程序员》通讯录管理系统源码
    • 《黑马程序员》C++核心编程(二)
    • 《黑马程序员》职工管理系统实战
    • 《黑马程序员》职工管理系统源码
    • 《黑马程序员》C++提高编程(三)
    • 《黑马程序员》演讲比赛管理系统实战
    • 《黑马程序员》演讲比赛管理系统源码
    • 《黑马程序员》演讲比赛管理系统成品

    1 C++初识

    1.1 第一个C++程序

    编写一个C++程序总共分为4个步骤

    • 创建项目
    • 创建文件
    • 编写代码
    • 运行程序

    1.1.1 创建项目

    ? Visual Studio是我们用来编写C++程序的主要工具,我们先将它打开
    在这里插入图片描述

    在这里插入图片描述

    1.1.2 创建文件

    右键源文件,选择添加->新建项

    在这里插入图片描述

    给C++文件起个名称,然后点击添加即可。

    在这里插入图片描述

    1.1.3 编写代码

    #include<iostream>
    using namespace std;
    
    int main() {
    
    	cout << "Hello world" << endl;
    
    	system("pause");
    
    	return 0;
    }
    

    1.1.4 运行程序

    在这里插入图片描述

    1.2 注释

    作用:在代码中加一些说明和解释,方便自己或其他程序员程序员阅读代码

    两种格式

    1. 单行注释// 描述信息
      • 通常放在一行代码的上方,或者一条语句的末尾,对该行代码说明
    2. 多行注释/* 描述信息 */
      • 通常放在一段代码的上方,对该段代码做整体说明

    提示:编译器在编译代码时,会忽略注释的内容

    1.3 变量

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

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

    示例:

    #include<iostream>
    using namespace std;
    
    int main() {
    
    	//变量的定义
    	//语法:数据类型  变量名 = 初始值
    
    	int a = 10;
    
    	cout << "a = " << a << endl;
    	
    	system("pause");
    
    	return 0;
    }
    

    注意:C++在创建变量时,必须给变量一个初始值,否则会报错

    1.4 常量

    作用:用于记录程序中不可更改的数据

    C++定义常量两种方式

    1. #define 宏常量: #define 常量名 常量值

      • 通常在文件上方定义,表示一个常量
    2. const修饰的变量 const 数据类型 常量名 = 常量值

      • 通常在变量定义前加关键字const,修饰该变量为常量,不可修改

    示例:

    //1、宏常量
    #define day 7
    
    int main() {
    
    	cout << "一周里总共有 " << day << " 天" << endl;
    	//day = 8;  //报错,宏常量不可以修改
    
    	//2、const修饰变量
    	const int month = 12;
    	cout << "一年里总共有 " << month << " 个月份" << endl;
    	//month = 24; //报错,常量是不可以修改的
    	
    	
    	system("pause");
    
    	return 0;
    }
    

    1.5 关键字

    作用:关键字是C++中预先保留的单词(标识符)

    • 在定义变量或者常量时候,不要用关键字

    C++关键字如下:

    asmdoifreturntypedef
    autodoubleinlineshorttypeid
    booldynamic_castintsignedtypename
    breakelselongsizeofunion
    caseenummutablestaticunsigned
    catchexplicitnamespacestatic_castusing
    charexportnewstructvirtual
    classexternoperatorswitchvoid
    constfalseprivatetemplatevolatile
    const_castfloatprotectedthiswchar_t
    continueforpublicthrowwhile
    defaultfriendregistertrue
    deletegotoreinterpret_casttry

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

    1.6 标识符命名规则

    作用:C++规定给标识符(变量、常量)命名时,有一套自己的规则

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

    建议:给标识符命名时,争取做到见名知意的效果,方便自己和他人的阅读

    2 数据类型

    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)

    2.2 sizeof关键字

    作用:利用sizeof关键字可以统计数据类型所占内存大小**

    语法sizeof( 数据类型 / 变量)

    示例:

    int main() {
    
    	cout << "short 类型所占内存空间为: " << sizeof(short) << endl;
    
    	cout << "int 类型所占内存空间为: " << sizeof(int) << endl;
    
    	cout << "long 类型所占内存空间为: " << sizeof(long) << endl;
    
    	cout << "long long 类型所占内存空间为: " << sizeof(long long) << endl;
    
    	system("pause");
    
    	return 0;
    }
    

    整型结论short < int <= long <= long long

    2.3 实型(浮点型)

    作用:用于表示小数

    浮点型变量分为两种:

    1. 单精度float
    2. 双精度double

    两者的区别在于表示的有效数字范围不同。

    数据类型占用空间有效数字范围
    float4字节7位有效数字
    double8字节15~16位有效数字

    示例:

    int main() {
    
    	float f1 = 3.14f;
    	double d1 = 3.14;
    
    	cout << f1 << endl;
    	cout << d1<< endl;
    
    	cout << "float  sizeof = " << sizeof(f1) << endl;
    	cout << "double sizeof = " << sizeof(d1) << endl;
    
    	//科学计数法
    	float f2 = 3e2; // 3 * 10 ^ 2 
    	cout << "f2 = " << f2 << endl;
    
    	float f3 = 3e-2;  // 3 * 0.1 ^ 2
    	cout << "f3 = " << f3 << endl;
    
    	system("pause");
    
    	return 0;
    }
    

    2.4 字符型

    **作用:字符型变量用于显示单个字符

    语法:char ch = 'a';

    注意1:在显示字符型变量时,用单引号将字符括起来,不要用双引号

    注意2:单引号内只能有一个字符,不可以是字符串

    • C和C++中字符型变量只占用1个字节
    • 字符型变量并不是把字符本身放到内存中存储,而是将对应的ASCII编码放入到存储单元

    示例:

    int main() {
    	
    	char ch = 'a';
    	cout << ch << endl;
    	cout << sizeof(char) << endl;
    
    	//ch = "abcde"; //错误,不可以用双引号
    	//ch = 'abcde'; //错误,单引号内只能引用一个字符
    
    	cout << (int)ch << endl;  //查看字符a对应的ASCII码
    	ch = 97; //可以直接用ASCII给字符型变量赋值
    	cout << ch << endl;
    
    	system("pause");
    
    	return 0;
    }
    

    ASCII码表格:

    ASCII控制字符ASCII字符ASCII字符ASCII字符
    0NUT32(space)64@96
    1SOH33!65A97a
    2STX34"66B98b
    3ETX35#67C99c
    4EOT36$68D100d
    5ENQ37%69E101e
    6ACK38&70F102f
    7BEL39,71G103g
    8BS40(72H104h
    9HT41)73I105i
    10LF42*74J106j
    11VT43+75K107k
    12FF44,76L108l
    13CR45-77M109m
    14SO46.78N110n
    15SI47/79O111o
    16DLE48080P112p
    17DCI49181Q113q
    18DC250282R114r
    19DC351383S115s
    20DC452484T116t
    21NAK53585U117u
    22SYN54686V118v
    23TB55787W119w
    24CAN56888X120x
    25EM57989Y121y
    26SUB58:90Z122z
    27ESC59;91[123{
    28FS60<92/124|
    29GS61=93]125}
    30RS62>94^126`
    31US63?95_127DEL

    ASCII 码大致由以下两部分组成:

    • ASCII 非打印控制字符: ASCII 表上的数字 0-31 分配给了控制字符,用于控制像打印机等一些外围设备。
    • ASCII 打印字符:数字 32-126 分配给了能在键盘上找到的字符,当查看或打印文档时就会出现。

    2.5 转义字符

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

    现阶段我们常用的转义字符有:\n \\ \t

    转义字符含义ASCII码值(十进制)
    \a警报007
    \b退格(BS) ,将当前位置移到前一列008
    \f换页(FF),将当前位置移到下页开头012
    \n换行(LF) ,将当前位置移到下一行开头010
    \r回车(CR) ,将当前位置移到本行开头013
    \t水平制表(HT) (跳到下一个TAB位置)009
    \v垂直制表(VT)011
    \\代表一个反斜线字符""092
    代表一个单引号(撇号)字符039
    "代表一个双引号字符034
    ?代表一个问号063
    \0数字0000
    \ddd8进制转义字符,d范围0~73位8进制
    \xhh16进制转义字符,h范围09,af,A~F3位16进制

    示例:

    int main() {
    	
    	
    	cout << "\\" << endl;
    	cout << "\tHello" << endl;
    	cout << "\n" << endl;
    
    	system("pause");
    
    	return 0;
    }
    

    2.6 字符串型

    作用:用于表示一串字符

    两种风格

    1. C风格字符串char 变量名[] = "字符串值"

      示例:

      int main() {
      
      	char str1[] = "hello world";
      	cout << str1 << endl;
          
      	system("pause");
      
      	return 0;
      }
      

    注意:C风格的字符串要用双引号括起来

    1. C++风格字符串string 变量名 = "字符串值"

      示例:

      int main() {
      
      	string str = "hello world";
      	cout << str << endl;
      	
      	system("pause");
      
      	return 0;
      }
      

    注意:C++风格字符串,需要加入头文件==#include<string>==

    2.7 布尔类型 bool

    作用:布尔数据类型代表真或假的值 **

    bool类型只有两个值:

    • true — 真(本质是1)
    • false — 假(本质是0)

    bool类型占1个字节大小

    示例:

    int main() {
    
    	bool flag = true;
    	cout << flag << endl; // 1
    
    	flag = false;
    	cout << flag << endl; // 0
    
    	cout << "size of bool = " << sizeof(bool) << endl; //1
    	
    	system("pause");
    
    	return 0;