一,字符指针变量
const char* s = "hello"
#数组指针
int (*p)[10] = {0};
#指针数组
//int *p[10] = {0};
int arr[10] = {0};
int (*pp) = &arr;
的代码意思是将h的放到指针变量s中,由于内存是连续存放的,因此访问h的地址便能访问整个字符串
二,数组指针变量
普通的指针数组是一种特殊的数组,地址是首字符的地址
但数组指针是一种指针,那如何获得数组地址?用首字符地址
数组指针必须加括号,保证每一个数据都是int等数据类型。
二维数组传参本质
一维数组传参是传的首地址,二维数组可以看出一些一维数组组成的“一维数组”,自然,传参传的就是第一个一维数组的地址.
三,函数指针变量
函数都知道,但函数是有地址的谁知道,
不妨自己做个实验,写一个函数,并打印地址,参考以上,得出,函数是有地址的.
void test()
{
printf("ssss");
}
int main()
{
test();
void (*p) = test
}
以上是用法实例,类型取决于函数的返回类型.
int add(int x, int y)
{
return x + y;
}
int main()
{
add(3,4);
int (*p1)(int , int) = add;
int (*p2)(int x, int y) = &add;//x y 写不写都可以
}
使用:
因为是调用函数,所以参数必须填上。