欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

CPP不熟悉知识点笔记

程序员文章站 2022-04-25 15:15:58
...

19. 指针与函数

19.1 指针作为函数的参数

指针是函数参数传递的重要工具。
通过指针作为函数参数的方法,既可以返回多个运算结果,又可以避免使用全局变量!
(1).作为形参
CPP不熟悉知识点笔记
使用一个函数求a,b的平方和、自然对数和、几何平均数、和的平方根:
CPP不熟悉知识点笔记
一个量通过return返回,其他三个值通过指针返回!

19.2 数组作为函数的参数

传递数组的地址,数组的长度
求数组n个元素的平均值
CPP不熟悉知识点笔记
因此,有四种情况:
1.形参——数组名、实参——数组名;2.形参——指针变量、实参——数组名;
3.形参——指针变量、实参——指针(提前放好数组名);4.形参——数组名、实参——指针。
自定义字符串复制函数:
CPP不熟悉知识点笔记

18. 指针与数组

数组名==数组第0个元素的地址==整个数组的地址
因此,数组名是一个地址常量!
p=a; <==> p=&a[0];
那么访问数组元素a[i],下列写法一致:
a[i] <==> p[i] <==> (a+i) <==> (p+i)
因此,遍历数组中的元素,有多种写法:
1.下标法;2.通过地址间接访问数组元素;3.通过指向数组的指针变量间接访问元素;
CPP不熟悉知识点笔记

18.2 指针与字符串(字符数组)

char *p="C Language"; %计算机自动用一个未命名的字符数组来存放“C Language”;且p指向这个字符数组。

CPP不熟悉知识点笔记
使用指针求字符串实际长度(不包含结束标志):
CPP不熟悉知识点笔记

17. 指针

一般函数只能用return返回一个值;利用数组可以返回相同类型的多个值;利用指针可以实现返回不同类型的多个值。
指针是服务于函数的!!尤其是函数之间。
- 拓展了函数可以做的事情。一个函数可以访问另一个函数的内部变量。

int a,b,*p1=&a,*p2; %则,&*p1 = &a =p1; *&a = *p1 = a;

指针类型==对应计算机的字节地址编码;
对象:占据一定的存储空间,有确定的存储位置!编译器将程序中的对象名转换成机器指令能识别的地址,通过地址来存取对象。

无效指针:
1.NULL;2.未初始化;3.迷途指针
指针的运算必须作用在连续的存储空间上才有意义。(连续空间是指,类似于数组所占地的存储空间)

  • 用const修饰(限定)的指针
    有一件事情不让做了: const int *p; p=&a; 可以读,但是不可以改。
    CPP不熟悉知识点笔记
    在函数形参中有应用
  • const指针
    不能做的一件事情是:改变这个指针的指向,起初指向哪个地址,之后依然指向那个地址。
  • 指向const对象的const指针
    之前提到的两件事情都不能做了。

16. 数组的应用

16.1 排序问题

  • 冒泡排序法(bubble sort)
    CPP不熟悉知识点笔记
    CPP不熟悉知识点笔记

    • 选择排序法(selection)
      记下来最小的数的下标。
      CPP不熟悉知识点笔记
      CPP不熟悉知识点笔记

16.2 查找

  • 顺序查找法
    思想:循环逐个比较;一般用于无序序列
    CPP不熟悉知识点笔记

  • 二分查找法
    思想:分成大致相同的两部分;一般用于有序序列
    CPP不熟悉知识点笔记

15. 字符串处理

15.1 字符数组

C++标准库 兼容了C语言的字符串处理函数,头文件为 string.h
数组的长度 为字符的长度 + 1;

"a"; % 双引号内 是字符串,字符串必须用 数组来存放。
'a'; % 单引号内 是字符

空字符 \0 为 字符串结束标志。

15.3 字符串类 string

完全可以替代C语言的字符数组,且功能更强大。动态长度。

#include <string>;
string str1, str2="Java",str3("C++"); %str3为对象直接初始化;str2为C风格字符串转换为字符串对象
cin >> str1; %输入
cout << str2; %输出
str1 = str2+str3; %连接
str1 == "ABC"; %比较
str.size(); %成员函数
string Xing[5]={"Jiang","Cao","Xu","Zhao","Lu"} %字符串对象数组

CPP不熟悉知识点笔记

14. 数组与函数

14.1 数组作为函数的参数

数组的元数作为函数的参数,与一般变量无区别,属于值传递;
数组名作为函数的参数,传递的是数组的首地址,就是同一个数组。

CPP不熟悉知识点笔记

14.2 数组参数的传递机制

形参数组就是是参数组。(且形参的长度并非必须)
多维数组仅第一维可以省略,且其他维必须和实参相同。
寻找二维数组的最大值,和最大值对应的下标
CPP不熟悉知识点笔记
计算数组所有元素的平均值
CPP不熟悉知识点笔记


13.2 一维数组的引用

int A[5];       %定义的时候方括号里写的是数组的长度;必须是常量表达式
A[2];           %引用的时候方括号里写的是下标。可以是变量

13.3 多维数组的定义

本质上,C++的多维数组都是一维数组,这是由内存形式的线性排列决定的。
且按行存放。
CPP不熟悉知识点笔记
二维数组的循环遍历:
CPP不熟悉知识点笔记

C++程序设计-西北工业大学-魏英、姜学锋、刘君瑞 视频

相关标签: CPP