CPP不熟悉知识点笔记

19. 指针与函数

19.1 指针作为函数的参数

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

19.2 数组作为函数的参数

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

18. 指针与数组

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

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

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

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

#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不熟悉知识点笔记_第8张图片
    在函数形参中有应用
  • const指针
    不能做的一件事情是:改变这个指针的指向,起初指向哪个地址,之后依然指向那个地址。
  • 指向const对象的const指针
    之前提到的两件事情都不能做了。

16. 数组的应用

16.1 排序问题

  • 冒泡排序法(bubble sort)
    这里写图片描述
    CPP不熟悉知识点笔记_第9张图片

  • 选择排序法(selection)
    记下来最小的数的下标。
    CPP不熟悉知识点笔记_第10张图片
    CPP不熟悉知识点笔记_第11张图片
    ##16.2 查找

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

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

15. 字符串处理

15.1 字符数组

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

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

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

15.3 字符串类 string

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

#include ;
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. 数组与函数

14.1 数组作为函数的参数

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

CPP不熟悉知识点笔记_第15张图片

14.2 数组参数的传递机制

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


13.2 一维数组的引用

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

13.3 多维数组的定义

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

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

你可能感兴趣的:(CPP不熟悉知识点笔记)