目录
一、C++优点
1.高效率
- 编译器被优化的非常完善
- 可以直接访问内存
- 计算效率尤为突出
- AI算法的实现
二、编译和链接
如果我们了解编译和链接原理,编程中遇到错误,就容易知道是什么错误
#include <iostream>
using namespace std;
int mul(int a, int b)
{
return a * b;
}
int main()
{
int a, b;
int result;
cut << "Pick two integers:";
cin >> a;
cin >> b;
result = mul(a, b);
cout << "The result is " << result << endl;
return 0;
}
1.函数的声明 (一般放在头文件*,hpp)
int mul(int a, int b);//有这么一个函数
2.函数的具体实现(一般放在源文件*.cpp)
int mul(int a, int b)
{
return a * b;
}
解释:
1)-c只编译不链接
2)object file是二进制文件
3)链接:将object文件生成可执行程序的步骤
三、debug
1.错误类型
a)编译错误(一般由语法造成)
一般来说,在指定错误前面出错
b)链接错误
mul写错Mul,链接时找不到
c)运行时错误
b=0,0做除数程序死掉
四、预处理和宏
1.预处理
处理预处理指令,编译之前运行,#开头的
如:
#include <iostream>
#define PI 3.1415926535
#if defined(_OPENMP)
#include <omp.h>
#endif
2.预处理指令
define, undef, include, if, ifdef, ifndef, else, elif, endif, line, error, pragma
编译器不处理#include
3.宏
define指令定义
PI不是一个变量,是一个宏,是一种文字替换
五、输入输出
1.cout
a)定义:std::ostream cout;
cout是一个变量,他描述一个对象,对象类型是ostream
std是命名空间,命名空间是防止重名
b)cout << "hello." << endl;
endl换行
2.cin
3.printf(c输出)
int v = 100;
printf("Hello, value = %d\n", v);
解释:第一个参数是字符串,%d是指定后面参数类型
4.scanf(c输入)
int v;
int ret = scanf("%d", &v);//&取地址
六、GUI图形界面
1.命令行与程序交互
a)通过命令行,把特定命令发给程序
g++ hello.cpp -o hello
//g++是一个应用程序(让g++程序编译hello.cpp,结果存到hello)
b)main()是有参数的
int main()
{
/* ... */
}
int main(int argc, char *argv[])
{
/* ... */
}
//int argc:有多少个参数,char *argv[]:具体参数列表会放在一个数组里面
int main(int argc, char **argv)
{
/* ... */
}