实用C++学习笔记1

教程地址:https://www.cctry.com/forum-140-1.html
ps:因为开头有一些是已经学过了的,所以只记一小部分,要看完整的去教程看

1 编程开发环境搭建

推荐用VS
我之前已经装过VS2017了,直接过一些调整:
开发设置改为 VC++:
工具→导入和导出设置
在这里插入图片描述
一直下一步,然后
在这里插入图片描述
完成

添加MFC:
工具→获取工具和功能
在这里插入图片描述
在这里插入图片描述
安装一个Visual Assist X,我下载的地址是这个:
https://www.cr173.com/soft/32656.html(破解方法也写有了)
重新打开VS,出现这个界面,就是ok了
在这里插入图片描述

2 C++语言概述

C语言+面向对象=C++

3 Visual Studio 基本使用

在这里插入图片描述
解决方案资源管理器:文件浏览的树形结构

在这里插入图片描述
类视图:把代码的类、变量等生成一个大纲

在这里插入图片描述
资源视图:代码中用到的图标、图片等,在这里

VA Outline:生成函数、变量、类的声明等的大纲,方便查找
在这里插入图片描述
在这里插入图片描述
VA View:找文件和找变量
Files in Solution:方便工程比较大,文件比较多的时候,可以搜索找到文件
Symbols in Solution(解决方案中的符号):找变量

在这里插入图片描述
用到比如带界面的程序,就可以用到工具箱的控件(按钮、列表、下拉框、编辑框等),可以直接拖到界面上

在这里插入图片描述
输出
在这里插入图片描述
查找结果:当代码量较大,要查找某个关键字等,使用查找功能(编辑→查找和替换)之后,结果在这里显示,双击查找结果会在代码中定位

在这里插入图片描述
断电:用于调试

Debug:调试版,带有调试信息
Release:发布版,对代码进行优化,去掉没有用的信息,体积变小

4 玩转 Hello World!

头文件:#include

#pragma once

写在头文件前面,表示头文件只能包含一次,防止重复
<>的是指系统提供的文件
" " 的是指工程目录当前的一些文件

main():程序的入口点

5 C++的数据类型与常量

转义字符:加反斜杠\
例:\“ =

在这里插入图片描述

6 C++中的变量

变量不能是数字开头,区分大小写

“匈牙利命名法”:在变量前面加一个字母来表示变量的类型:iSum,cSex 等等,i 表示 整型的 int,c 表示字符型的 char 等等。

常量:const和#define宏定义,C++推荐用const

编译器处理不同
宏定义是一个“编译时”概念,在预处理阶段展开(在编译时把所有用到宏定义值的地方用宏定义常量替换),不能对宏定义进行调试,生命周期结束于编译时期;
const常量是一个“运行时”概念,在程序运行使用,类似于一个只读行数据

存储方式不同
宏定义是直接替换,不会分配内存,存储与程序的代码段中; const常量需要进行内存分配

类型和安全检查不同
宏定义是字符替换,没有数据类型的区别,同时这种替换没有类型安全检查,可能产生边际效应等错误;
const常量是常量的声明,有类型区别,需要在编译阶段进行类型检查

定义域不同
#define在哪儿定义都是全局的,不受定义域限制;const定义在哪儿就只能在哪儿用,受定义域限制。
是否可以做函数参数
宏定义不能作为参数传递给函数
const常量可以在函数的参数列表中出现

定义后能否取消
宏定义可以通过#undef来使之前的宏定义失效 const常量定义后将在定义域内永久有效
总结
宏定义在编译时把所有用到宏定义值的地方用宏定义常量替换。const常量可以看作是一个只读变量,需要指定类型,需要分配内存,有自己的作用域。
参考于:https://www.cnblogs.com/xumaomao/articles/11049541.html

7 C++中的运算符

位运算符:

<<(按位左移)、>>(按位右移)、&(按位与)、|(按位或)、^(按位异或)、~(按位取反)

求字节数运算符:(sizeof)
成员运算符:(.)
指向成员的运算符:(->)

%:求余运算符:5%3,要求两侧均为整数。
/:除法运算符:实际上是求商,结果的类型按进行计算的数的类型

自动转换遵循以下规则:
1) 若参与运算的两个参数类型不同,则先转换成同一类型,然后再进行运算; 2) 按照数据长度增加的方向进行(即:由 少字节类型 向 多字节类型 转换),以保证精度不丢失; 3) 所有的浮点运算都是以双精度进行的,即使仅含 float
单精度量运算的表达式,也要先转换成 double 类型,再作运算; 4) char 类型 和 short 类型参与运算时,必须先转换成 int 类型,也就是说最小的运算整形单位是 int; 5)
在赋值运算中,赋值号两边量的数据类型不同时,赋值号右边量的类型将转换为左边量的类型(右随左变)。如果右边的数据类型的长度比左边长时,将丢失一部分数据,这样会降低精度,例如:int x = 2.5;

总的来说,就是宁可把精度范围变大,也不会丢失

强制类型转换有两种表达形式,下面举例说明:
int x = 2;
float y = 3.6;
x = (int)y;
y = float(x);

自增:

int x = 2;
int y = x++;  // x=3  y=2
int z = ++x;  // x=4  y=4

8 赋值运算符和赋值表达式

赋值运算符:多的给少的会丢失,少的给多的没事儿。

int x = 2.3;  //实际上x=2

逗号表达式:
规则是:所有以逗号间隔的表达式都进行计算,各个表达式的计算顺序按照从左往右。整个表达式的值是最后一个逗号表达式的值。

int x = 0;
int y = 0;
x += 2, y += 3;
int q = ((x += 2), (y += 3));  // 结果:q=6
int x = 2;
x = 3 *5, x*4;  //结果:x=15

在这里插入图片描述

9 C++的语句与输入输出

标准输入输出流控制符:
在这里插入图片描述
控制输出的小数数位:

#include <iostream>
#include<iomanip>
using namespace std;

int main()
{
	cout << fixed << setprecision(5);
	double x = 2;
	double y = 3;
	cout << x << endl;
	cout << y << endl;
}

在这里插入图片描述
详细使用方法详见:
C++标准输入输出流的控制符:
https://www.cctry.com/thread-279037-1-1.html

C++中 cin 的详细用法:
https://www.cctry.com/thread-279040-1-1.html

猜你喜欢

转载自blog.csdn.net/weixin_45550460/article/details/106051197