C语言 - 指针的基础和部分应用

1.int p

    整型变量;

2.int *p

    p先与*组合,说明是指针;

    再与int组合,说明指向的内容为int类型;

3.int p[3]

    p先与[ ]组合,说明是数组;

    再与int组合,说明数组内容是int类型;

4.int *p[3]

    p先与[ ]组合,说明是数组;

    再与*组合,说明数组内容是指针;

    最后和int组合,说明指针指向的内容是int类型;

    【[ ]优先级比 * 高】

5.int (*p)[3]

    p先与*组合,说明是指针;

    再与[ ]组合,说明指向的内容为数组类型;

    最后和int组合,说明数组的内容是int类型;

6.int **p

    p先与*组合,说明是指针;

    再与*组合,说明指向的内容为指针类型;

    最后和int组合,说明指针指向的内容是int类型;

7.int p(int)

    p先与()组合,说明是函数;

    再与里面int组合,说明函数有一个int类型参数;

    最后与外面的int组合,说明函数返回值是int类型;

8.int (*p)(int)

    p先与*组合,说明是指针;

    再与( )组合,说明指向的内容为函数类型;

    在和里面的int组合,说明函数有一个int类型参数;

    最后和外面的int组合,说明函数返回值是int类型;

9.int *(*p(int))[3]

    p先与()组合,说明是函数;

    再与里面int组合,说明函数有一个int类型参数;

    再与里面的*组合,说明函数返回值是指针类型;

    再与[ ]组合,表示返回的指针指向数组类型;

    再与外面的*组合,表示数组的内容是指针;

    最后与外面的int组合,说明指针指向的是int类型;


Other:

    1.遇到指针怎么分析

        a.指针的类型:把指针名字去掉,剩下的就是;

        b.指针指向的类型:把指针的名字+*一起去掉,剩下的就是;

        c.指针的值 or 指针所指向的内存区或地址;

        d.指针本身占用多少内存,sizeof(指针的类型);

          【在32位平台中,指针本身占4Byte】

    2.指针+1的含义

        对该指针增加1个存储单位

        存储单位指的是指针指向的数据类型所占的内存的字节数

    3.日常codeing中会使用的指针函数

           int (*data_sm[4])(txxx data)

           int data1(txxx data)

          {

                 // xxx;

                printf(" xx");

          }

          data_sm[0] = data1;

          data_sm[1] = data2;

    4.快慢指针

        使用两个在数组 or 链表中以不同速度移动的指针

        在处理循环链表或数组时非常有用

    5.双指针

        waiting for update...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bigger_One

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值