指针的补充内容:
指针数组:
元素为地址的数组
数组指针:
类型为指针的数组
二维数组:
又称集合的集合---集合中的每个元素均为一个集合--结合的嵌套
冒泡排序、const、typedef
(1)冒泡排序:
简化原理:我们所需要排序的部分在逐渐缩短--已经排序过的部分不需要再次考虑
(2)const:
使用const所修饰的变量不可再次修改---我们称为"不变量"--像是某些物体的固定属性, 可以考虑使用--但请注意const的位置--这关系到我们到底可以更改什么
ps:我们建议在使用const时需要对其进行初始化
(3)typedef:
简单理解--起别名--为了更方便的去记忆或调用数据
使用方法:typedef+数据类型+别名
例子如下:typedef long long ll--这里我们声明了一个ll,但是他与long long关键字有着相同的作用
拓展(或者称为组合):
<1>指针:
只不过多了一些内容--需要定义指针的类型
typedef int* AA--此时AA表示int类型的指针的关键字
<2>长度为x的数组:
typedef int arr[5]
此时arr称为长度为5的数组的关键字
define(宏定义)、位运算
程序执行四个时期:
预处理:
编译:检查程序是否有错误、
汇编:将高级语言转换成汇编语言、
链接:将汇编语言转换成机械语言
在计算机组成原理中涉及相关知识,关于这部分的知识,我会在计算机组成原理的笔记当中补充
宏的作用:
单纯的替换--比如将Π(圆周率)换成3.14
语法:#define+宏的名字+要替换的内容
ps:宏也可以替换宏--比如:#define b AA AA
此时b代表着两次AA(以下方的例子为例)
带参数的宏定义:#define ADD(a,b) a+b--将ADD替换为a+b的结果--当然,要先传入参数
位运算:
(1)与:&
(2)或:|
(3)取反:~
(4)异或:^ --相同时为0,不同时为1--数字电路与逻辑
(5)左移:<< --"a<<2"--表示a向左移动2位,且以0补位
(6)右移:>> --与左移同理
ps:如何给指定位置赋予"1"--或运算的应用