1.字符指针
字符串常量表达式的值是字符串首字符'a'的地址,由于字符串常量不能被修改
需要在前面加上'const'关键字是其不能被修改
2.数组指针-指向数组的指针-存放的是数组的地址
int arr[10]; &arr拿到的是数组的首地址;
数组名除了在‘&数组名’和‘sizeof数组名’是代表整个数组地址,其他情况都是代
表着首元素地址
int (*p)[10]=&arr;
用作二维数组的形参;接收二维数组的首元素地址;
3.指针数组
指针数组是数组,数组里面存放的都是指针;可以用数组指针来模拟一个二维
数组
4.数组参数和指针参数
4.1一维数组传参,传递的是第一个元素的地址
4.2二维数组传参,传递的是第一行的地址
4.3数组在传参的时候,形式可以写成数组,也可以写成指针
5.函数指针
函数指针
int (*p) (int int);
调用函数时(*p)(int int);(*p)是为了习惯便于理解,实际也可
以写成 p(int,int)
函数名就是函数的地址;
看以上代码,可以看到有个 sig,太过于复杂只能从他入手,由于sig
跟括号在一起,可以知道这是一个函数声明,sig有两个参数,一个
参数类型为int,一个参数类型为函数指针类型,函数指针指向的函
数类型参数为int,返回类型为void,sig函数的参数拿走后剩下的是返
回类型,可以知道返回类型也为函数指针,当然,这个代码太过于复
杂,可以使用简化代码
这个代码跟上面代码是同一效果。