1.指针数组和数组指针
(1)指针数组是一个数组,是一个存放指针的数组,如:
Char *arr[10]
(2)数组指针是指针
整型指针:int *pint;指能够指向整型数据的指针
浮点型指针:float *pf;指能够指向浮点型数据的指针
2. 指针和数组的定义与声明
(1)定义为数组声明为数组,定义为指针声明为指针
结果为:
若是定义为数组声明为数组,定义为指针声明为指针是成立的。
(2)定义为指针,声明为数组
定义为指针,声明为数组,程序运行过程中会出现问题。因为指针p保存的是数组的地址,直接声明后访问会出现意料不到的错误。
改正后:
或者:
输出结果为:
(3)定义为数组,声明为指针
若是定义为数组,声明为指针,程序运行会出现错误。这是因为指针中存放4个字节,而数组中存放了”abcdef”,所以只能读到”abcd”的asc码值,输出的地址应该是0x61626364
3. 函数能够接受的参数
(1)一级指针:
一.接收普通变量的地址
二.接收一维数组的数组名
三.接收一级指针
void test(int *p)
{
}
int main()
{
int a;
int arr[4];
int *p1;
test(&a);
test(arr);
test(p1);
Return 0;
}
(2) 二级指针
一、接收二级指针变量
二、接收一级指针变量的地址。