dululu / GitNote

0 stars 0 forks source link

快速学习C和C++,基础语法和优化策略(一) #15

Open dululu opened 5 months ago

dululu commented 5 months ago

视频ysq
文档: github

只是差缺补漏,快速过一遍💨💨💨

  • 基础知识:以点带面
  • 本课重点: 指针和内存管理
  • 程序效率提升;
  • 介绍OpenCV采用c++特性设计cv::Mat类
  • 介绍ARM开发:ARM开发与Intel的x86开发没有区别。嵌入式ARM,智能设备/ARM服务器。

    基础知识

    P1:编译 Compile

  • 编译C++代码:g++编译器
    g++ hello.cpp
    g++ hello.cpp  --std=c++11  //告诉编译器采用哪一个标准
    //执行成功,生成可执行文件a.out
    g++ hello.cpp  --std=c++11 -o hello //更改执行文件名
    ./hello    //执行
  • 计算机编程语言发展历史
  • 二进制指令(Binary instructions for CPU): 纸带打孔表示0和1 屏幕截图 2024-01-08 160010
- 汇编语言(assembly language)
- 高级编程语言(high level language):
  - C:1973  
  - C++:1979,c with class
  - Java:1995 生成字节码class文件
  - Python:1990 脚本语言

int mul(int a, int b); //*.h

int mul(int a, int b) // .c,.cpp { return a * b; }

- **debug**
  - 编译错误:语法错误,如漏了分号
  - 链接错误:Mul.o 与 mul.o
  - 运行时错误:如除数为0,2/0  

### P2 预处理和宏 Preprocessor and Macros
*在编译之前的步骤*
- 定义规则
  - 以`#`开头
  - 每个预处理指令只能占一行

- 宏定义
```cpp
#define PI 3.14 // PI 不是变量,因为不可改变,理解为文字替换

输入:scanf

int v;
int ret = scanf("%d",&v);

P4 常见数据类型

int

屏幕截图 2024-01-10 164256 image

sizeof()返回当前数值占多少个字节

浮点数float

image

2.34E+10f : 可以表示为 23400000000,即 234 亿。其中,E 表示 10 的指数,+10 表示 10 的 10 次方,f 表示浮点数。

  • 32位单精度浮点数
  • 符号位
  • 系数
  • 精度
  • double,64位
  • long double

    数组 array[]

  • 连续的内存,在Java中是一个对象。
  • 可以是存储任何数据类型
image image

字符串 String

image image

数组长度为5,字符串长度为4