1.数组:一批具有同名的同属性的数据就组成了一个数组。(“[ ]”也是数组类型的一部分)
由此可知:(1)数组是一组有序数据的集合;(2)数组中的每一个元素都属于同一个数据类型。
定义一维数组的一般形式:类型符 数组名【常量表达式】(数组也是一种类型 )
[多维数组也是一维数组,只是其内部的元素也是数组,如:二维数组的内部元素都是一维数组,三维数组其内部元素类型都是二维数组,以此类推,n维数组其内部元素都是n-1维数组]
2.指针:指针就是地址,一个变量的指针就是该变量的地址(即变量指针)。
3.指针变量:指针变量是变量,用来存放另一变量的地址
(由此可知:指针是一个地址,而指针变量是存放地址的变量,我们通常所说的定义一个指针实质上是指定义了一个指针变量)
4.函数指针:就是函数的地址
5.函数指针数组:是一个数组,其内部元素为函数的地址
6.容易混淆的点:
(1)指针和数组没有关系
(2)判断指针数组和数组指针的方法:
由优先级决定,例:
int *p[10] //指针数组 ,因为[ ]的优先级高于 * 的优先级
(int *p)[10] //数组指针 ,因为()的优先级高于[ ] 的优先级
(3)数组在传参时会发生降维,即数组在进行传参时会降维成指向其内部元素类型的指针
(4)数组名只有在sizeof(数组名)和“&(数组名)”这两种情况下表示整个数组,其他情况下均表示数组首元素的地址
(5)指针加1加的是其所指向类型的大小;
例:a+1指的是加的整个数组的长度
a[0]+1指的是数组里边第二个元素
(6)一般情况下,两个指针指向同一数组/字符串,通常代表两指针之间的元素的个数。