C++基础
一、环境配置
选择Visual Studio 2017版本
安装参考软件管家
二、编译链接过程
三、简要
3.1 创建一个项目


打印"Hello world"
#include<iostream> using namespace std; int main() { cout << "fine" << endl; system("pause"); return 0; }
分文件编程:
main.pp
#include<iostream> using namespace std; void Log(const char* message); int main() { //cout << "fine" << endl; Log("this"); system("pause"); return 0; }
log.cpp
#include<iostream>
void Log(const char* message)
{
std::cout << message << std::endl;
}
编译:将头文件复制粘贴到文本里面进行转义为obj文件
链接:将obj链接到所有的东西之中,主要由main文件串联,但是入口处也可能不是main
3.2 变量
存储在空间之中,区别是所占字符的大小
无符号:在32位系统之中,第一位是符号位,之后的31位是数据
有符号:unsigned ,即32位全是数据,没有符号位
可以通过sizeof 来查看字节大小
3.3 常量
3.4 关键字
static :静态常量,避免全局变量出现
#include <iostream>
void Function()
{
int i = 0;
i++;
std::cout << i << std::endl;
}
int main()
{
Function();
Function();
Function();
std::cin.get();
}

#include <iostream> void Function() { static int i = 0; i++; std::cout << i << std::endl; } int main() { Function(); Function(); Function(); std::cin.get(); }

枚举
给特定值命名,不用在个各种地方处理变量,默认第一个定义的元素是
#include <iostream> enum Example :unsigned char { A,B,C }; int main() { Example value = B; if(1 == value) { std::cout << value << std::endl; } std::cin.get(); }
3.5 标识符命名规则
四、数据类型
4.1整型
4.2实型
4.3字符型
4.4字符串型
4.5布尔型
4.6sizeof关键字
4.7数据的输入
五、运算符
5.1 算数运算符
5.2 赋值运算符
5.3 比较运算符
5.4 逻辑运算符
六、程序流程结构
6.1 选择结构
6.2 循环结构
for(; ;)
#include<iostream> using namespace std; void Log(const char* message); int main() { float variable = 5.5f; double var = 5.2; for(int i =0 ;i<5 ;i++) { std::cout << variable << std::endl; } std::cin.get(); return 0; }
do while()
while()
continue:结束此次的运行
#include<iostream>
using namespace std;
void Log(const char* message);
int main()
{
float variable = 5.5f;
double var = 5.2;
for(int i =0 ;i<5 ;i++)
{ if(i%2 == 0)
std::cout << variable << std::endl;
std::cout <<i <<std ::endl;
continue;
}
std::cin.get();
return 0;
}
break :终止全部的运行
#include<iostream>
using namespace std;
void Log(const char* message);
int main()
{
float variable = 5.5f;
double var = 5.2;
for(int i =0 ;i<5 ;i++)
{ if(i%2 == 0)
std::cout << variable << std::endl;
std::cout <<i <<std ::endl;
break;
}
std::cin.get();
return 0;
}
return 结束这个语句
return 结束整个代码
6.3跳转结构
七、数组
7.1一维数组
7.2二维数组
八、函数
8.1 函数定义
分文件思想:
主要作用是检查重复出现,当多次引用的时候,不会重定义
1.
#pragma once
#pragma once void InitLog(); void Log(const char* message);
2.
#ifndef _LOG_H #define _LOG_H void InitLog(); void Log(const char* message); #endif
析构函数:
为啥用:
#include <iostream> class Entity { public: float X, Y; void Print() { std::cout << X << Y << ", " << Y << std::endl; } }; int main() { Entity e; std::cout << e.X << std::endl; e.Print(); std::cin.get(); }
8.2 函数的调用
8.3 函数的声明
8.4 函数的分文件编写
九、指针
9.1 指针的基本概念
指针只是一个地址,保存地址的变量,指针的类型,只是限制它有多少内存
#include<iostream> using namespace std; #define LOG(x) std::count << x <<std::endl int main() { int var = 8; int* ptr = &var; *ptr = 90; std::cout<< ptr << std::endl; std::cin.get(); return 0; }
引用
9.2 指针变量的定义与使用
9.3 指针占用内存空间
9.4 空指针和野指针
9.5const和修饰指针
9.6 指针和数组
9.7 指针和函数
9.8 指针、数组、函数
十、结构体
10.1结构体的基本概念
10.2 结构体的定义与使用
10.3 结构体数组
10.4结构体指针
10.5结构体嵌套结构体
10.6
十一、类
和结构体基本无区别,就是在写的时候,有一些权限的限制,默认情况下在类中,他的属性是private,不可以被外部访问,而结构体的默认属性是public;还有的区别就是类更容易继承
#include<iostream> class Log { public: const int LogLevelError = 0; const int LogLevelWarning = 1; const int LogLevelInfo = 2; private: int m_LogLevel = LogLevelInfo; public: void setLevel(int level) { m_LogLevel = level; } void Error(const char* message) { if(m_LogLevel >= LogLevelError) std::cout << " [WARNING]:" << message << std::endl; } void warn(const char* message) { if (m_LogLevel >= LogLevelWarning) std::cout << " [WARNING]:" << message << std::endl; } void Info(const char* message) { if (m_LogLevel >= LogLevelInfo) std::cout << " [WARNING]:" << message << std::endl; } }; int main() { Log log; log.setLevel(log.LogLevelWarning); log.warn("Hello!"); std::cin.get(); }
浙公网安备 33010602011771号