指针相关操作

一:函数指针调用函数
一个函数,在编译的时候,系统会给函数分配一个入口地址,这个入口地址称为函数的指针(地址)
既然有地址,我们可以声明一个指针变量指向该函数,就可以通过指针变量调用函数了

    int c,d;
    c = max(15, 9);
    int(*p)(int, int);//定义一个函数指针变量
    p = max;//将函数max入口地址给指针变量p,函数名代表函数入口地址。&max与max地址是等价的
    
    d = p(15, 9);//调用*p就是调用函数max,p指向函数max的入口,这里(*p)与p等价,*可以省略
                //p不能自加操作,*(p+1)不合法
    printf("c=%d\n",c);
    printf("d=%d\n", d);
    getchar();

    总结
    函数指针定义一般形式:
    数据类型标识符 (*函数指针名)(形参列表)
    指向函数的指针变量,p++,p--都没有意义

二,指向函数的指针做函数参数
    int c;
    c = wwmax(15, 9, max);
    printf("c=%d\n", c);
    getchar();

三,返回指针的函数
    函数返回的指针类型的数据,也就是返回地址
    定义形式:
    数据类型 *函数名(参数列表)
    int *a(int x,int y)

四,指针数组
char *pName[]={"c++","java","python","go"};
int is1 = sizeof(pName);
int isize = is1 / sizeof(pName[0]);
char *p2 = "java";
int i;

printf("is1=%d \n isize=%d\n",is1,isize);

for (i = 0; i < isize; i++)
{
    printf("pName[%d]=%s\n", i, pName[i]);
}
getchar();

五、指向指针的指针
    char **p; //定义一个指向 字符指针变量 的指针
    int **p;  //定义一个指向 整形指针变量 的指针
     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值