c++编程总结

c++编程总结,第1张

重新系统学习c++语言,并将学习过程中的知识在这里抄录、总结、沉淀。

1 c++揭开面纱 1.1 编程工具

        注:开发环境指在windows机器。

        实际项目开发中开发工具可选择:

        (1) Visual Studio--可直接创建项目,并编译运行,较方便简单。

        (2) vscode--可写代码,但对于Windows系统而言就需要安装Mingw-w64来获得编译器。(网上可搜索到安装配置方法不再累述) 

        (3) https://lightly.teamcode.com/  初学者推荐这个站点,可以在线建项目,并运行出结果。方便快捷。

提示:本文采用 lightly 站点编程。

1.2 第一个c++小程序                
#include
using namespace std;

int main() {

	cout << "Hello world" << endl;


	return 0;
}

运行后输出:

        

1.3 注释

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

格式:

     1. 单行注释:

         通常放在一行代码的上方,或者一条语句的末尾,对该行代码说明。

   语法: // 注释信息

     2. 多行注释: 

        通常放在一段代码的上方,对该段代码做整体说明。

        语法: /* 注释信息 */

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

#include
using namespace std;

int main() {

	// 这是单行注释

    /*
    这是多行注释
    这是多行注释
    */
	
	system("pause");

	return 0;
}
1.4 变量

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

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

示例:int a = 1;

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

1.5 常量

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

定义常量两种方式:

        1. #define 宏常量: 

                通常在文件上方定义,表示一个常量

               语法:#define 常量名 常量值

        2. const修饰的变量 

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

                语法:const 数据类型 常量名 = 常量值

示例:

#include
using namespace std;

//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.6 关键字

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

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

C++关键字如下:

asmelsenewthis
autoenumoperatorthrow
boolexplicitprivatetrue
breakexportprotectedtry
caseexternpublictypedef
catchfalseregistertypeid
charfloatreinterpret_casttypename
classforreturnunion
constfriendshortunsigned
const_castgotosignedusing
continueifsizeofvirtual
defaultinlinestaticvoid
deleteintstatic_castvolatile
dolongstructwchar_t
doublemutableswitchwhile
dynamic_castnamespacetemplate

完整关键字介绍可查阅:

C++ 的关键字(保留字)完整介绍 | 菜鸟教程

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

1.7 标识符命名规则

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

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

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

2 数据类型

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

2.1 总括

基本的内置类型

C++ 为程序员提供了种类丰富的内置数据类型和用户自定义的数据类型。下表列出了七种基本的 C++ 数据类型:

类型关键字备注
整型int
浮点型float
双浮点型double
布尔型bool

有两个值:

true 真,本质是1

false 假,本质是0

字符型char

定义: char ch = 'a';

只能用单引号,且里面只能有一个字符,不能多个。

字符型变量并不是把字符本身放到内存中存储,而是将对应的ASCII编码放入到存储单元。要记住两个字符的ASCII编码:a--97,A--65,其他顺序推算。

无类型void
宽字符型

wchar_t

真实定义:

typedef short int wchar_t;
所以wchar_t 实际上的空间是和 short int 一样

一些基本类型可以使用一个或多个类型修饰符进行修饰:

  • signed
  • unsigned
  • short
  • long

下表显示了各种变量类型在内存中存储值时需要占用的内存,以及该类型的变量所能存储的最大值和最小值。

注意:不同系统会有所差异,一字节为 8 位。

注意:默认情况下,int、short、long都是带符号的,即 signed。

注意:long int 8 个字节,int 都是 4 个字节,早期的 C 编译器定义了 long int 占用 4 个字节,int 占用 2 个字节,新版的 C/C++ 标准兼容了早期的这一设定。

类型范围
char1 个字节-128 到 127 或者 0 到 255
unsigned char1 个字节0 到 255
signed char1 个字节-128 到 127
int4 个字节-2147483648 到 2147483647
unsigned int4 个字节0 到 4294967295
signed int4 个字节-2147483648 到 2147483647
short int2 个字节-32768 到 32767
unsigned short int2 个字节0 到 65,535
signed short int2 个字节-32768 到 32767
long int8 个字节-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807
signed long int8 个字节-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807
unsigned long int8 个字节0 到 18,446,744,073,709,551,615
float4 个字节精度型占4个字节(32位)内存空间,+/- 3.4e +/- 38 (~7 个数字)
double8 个字节双精度型占8 个字节(64位)内存空间,+/- 1.7e +/- 308 (~15 个数字)
long double16 个字节长双精度型 16 个字节(128位)内存空间,可提供18-19位有效数字。
wchar_t2 或 4 个字节1 个宽字符
2.2 sizeof

各数据类型所占内存空间不同,可能我们没那么好记忆来记住它们,c++提供了sizeof关键字来解决这个问题。

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

语法: sizeof( 数据类型 或 变量)

示例:

#include 
using namespace std;

int main() {
    int a = 1;
    
    cout << "short 类型所占内存空间为: " << sizeof(short) << endl;

    cout << "int 类型所占内存空间为: " << sizeof(int) << endl;

    cout << "用变量a获取 int 类型所占内存空间为: " << sizeof(a) << endl;

    cout << "long 类型所占内存空间为: " << sizeof(long) << endl;

    cout << "long long 类型所占内存空间为: " << sizeof(long long) << endl;

    system("pause");

    return 0;
}

 运行后输出:

        

2.3 字符串

作用:用于表示一串字符

两种风格:

        1. C风格字符串:

        char 变量名[] = "字符串值"

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

       2.  C++风格字符串: 

  string 变量名 = "字符串值"

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

示例:

#include 
#include 
using namespace std;

int main() {
    char str1[] = "abc";
    cout << "str1字符串为:" << str1 << endl;

    string str2 = "123";
    cout << "str2字符串为:" << str2 << endl;

    return 0;
}

运行后输出:

        

2.4 数据的输入

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

关键字:cin

语法: cin >> 变量

示例:

#include 
using namespace std;

int main() {
    int a = 0;
    cout << "请给a赋值:" << endl;
    cin >> a;
    cout << "a的值为:" << a << endl;

    return 0;
}

 运行后输出:

        

3 运算符

作用:用于执行代码的运算

本章主要讲解以下几类运算符:

运算符类型作用
算术运算符用于处理四则运算
赋值运算符用于将表达式的值赋给变量
比较运算符用于表达式的比较,并返回一个真值或假值
逻辑运算符用于根据表达式的值返回真值或假值
3.1 算术运算符

作用:用于处理四则运算

算术运算符包括以下符号:

运算符术语示例结果
+正号+33
-负号-3-3
+10 + 515
-10 - 55
*10 * 550
/10 / 52
%取模(取余)10 % 31
++前置递增a=2; b=++a;a=3; b=3;
++后置递增a=2; b=a++;a=3; b=2;
--前置递减a=2; b=--a;a=1; b=1;
--后置递减a=2; b=a--;a=1; b=2;

注意:

  • 在除法运算中,除数不能为0
  • 在取模运算中,除数不能为0。只有整型变量可以进行取模运算,不能是浮点型变量。
  • 整数进行除法运算,若除不尽,则结果只有整数部分,小数部分不保留。

附 1 ASCII 编码一览表
SCII 编码一览表(十进制0-31、127为控制字符,其他为可显示字符)
二进制十进制十六进制字符/缩写解释
00000000000NUL (NULL)空字符
00000001101SOH (Start Of Headling)标题开始
00000010202STX (Start Of Text)正文开始
00000011303ETX (End Of Text)正文结束
00000100404EOT (End Of Transmission)传输结束
00000101505ENQ (Enquiry)请求
00000110606ACK (Acknowledge)回应/响应/收到通知
00000111707BEL (Bell)响铃
00001000808BS (Backspace)退格
00001001909HT (Horizontal Tab)水平制表符
00001010100ALF/NL(Line Feed/New Line)换行键
00001011110BVT (Vertical Tab)垂直制表符
00001100120CFF/NP (Form Feed/New Page)换页键
00001101130DCR (Carriage Return)回车键
00001110140ESO (Shift Out)不用切换
00001111150FSI (Shift In)启用切换
000100001610DLE (Data Link Escape)数据链路转义
000100011711DC1/XON
(Device Control 1/Transmission On)
设备控制1/传输开始
000100101812DC2 (Device Control 2)设备控制2
000100111913DC3/XOFF
(Device Control 3/Transmission Off)
设备控制3/传输中断
000101002014DC4 (Device Control 4)设备控制4
000101012115NAK (Negative Acknowledge)无响应/非正常响应/拒绝接收
000101102216SYN (Synchronous Idle)同步空闲
000101112317ETB (End of Transmission Block)传输块结束/块传输终止
000110002418CAN (Cancel)取消
000110012519EM (End of Medium)已到介质末端/介质存储已满/介质中断
00011010261ASUB (Substitute)替补/替换
00011011271BESC (Escape)逃离/取消
00011100281CFS (File Separator)文件分割符
00011101291DGS (Group Separator)组分隔符/分组符
00011110301ERS (Record Separator)记录分离符
00011111311FUS (Unit Separator)单元分隔符
001000003220(Space)空格
001000013321!
001000103422"
001000113523#
001001003624$
001001013725%
001001103826&
001001113927'
001010004028(
001010014129)
00101010422A*
00101011432B+
00101100442C,
00101101452D-
00101110462E.
00101111472F/
0011000048300
0011000149311
0011001050322
0011001151333
0011010052344
0011010153355
0011011054366
0011011155377
0011100056388
0011100157399
00111010583A:
00111011593B;
00111100603C<
00111101613D=
00111110623E>
00111111633F?
010000006440@
010000016541A
010000106642B
010000116743C
010001006844D
010001016945E
010001107046F
010001117147G
010010007248H
010010017349I
01001010744AJ
01001011754BK
01001100764CL
01001101774DM
01001110784EN
01001111794FO
010100008050P
010100018151Q
010100108252R
010100118353S
010101008454T
010101018555U
010101108656V
010101118757W
010110008858X
010110018959Y
01011010905AZ
01011011915B[
01011100925C\
01011101935D]
01011110945E^
01011111955F_
011000009660`
011000019761a
011000109862b
011000119963c
0110010010064d
0110010110165e
0110011010266f
0110011110367g
0110100010468h
0110100110569i
011010101066Aj
011010111076Bk
011011001086Cl
011011011096Dm
011011101106En
011011111116Fo
0111000011270p
0111000111371q
0111001011472r
0111001111573s
0111010011674t
0111010111775u
0111011011876v
0111011111977w
0111100012078x
0111100112179y
011110101227Az
011110111237B{
011111001247C|
011111011257D}
011111101267E~
011111111277FDEL (Delete)删除

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1498199.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-25
下一篇 2022-06-25

发表评论

登录后才能评论

评论列表(0条)

保存