1.数组名的理解
数组名是数组首元素的地址
但是有两个例外:
a. sizeof(数组名),这里的数组名表示两个数组,计算的是整个数组的大小,单位是字节
b. &数组名,这里的数组名也表示整个数组,取出的是整个数组的地址
分别取地址并打印:
arr→arr+1跳过一个字节
&arr→&arr+1跳过一整个数组
2.使用指针访问数组
arr[i]==*(p+i)==*(arr+i)==p[i]
== *(i+arr)==i[arr] //[ ]操作符
3.一堆数组传参的本质
一堆数组传参的时候,传过去的是数组首元素的地址
形参的部分可以写成指针的形式,也可以写成数组的形式,但本质上都是指针。写成数组的形式是为了方便理解
4.冒泡排序
冒泡排序的核心思想就是:两两相邻的元素进行比较。
n个元素需要n-1次排序
一趟冒泡排序后,如果没有元素交换,就说明已经有序了。
5.二级指针
指针变量的指针,就是二级指针。
int a = 10;
int * p = &a;//p是指针变量,一级指针变量
int * * pp = &p;//二级指针变量,用来存放一级指针变量的地址
……(多级指针)
int * *//*代表pp是指针变量;int*代表pp指向的对象是int*类型的