美文网首页
指针变量的自增的区别 *p++ (*p)++ *(p++)

指针变量的自增的区别 *p++ (*p)++ *(p++)

作者: xiamigan | 来源:发表于2018-10-08 15:09 被阅读0次
#include<stdio.h>

int main(){
    int a=2,*p=&a,*q=&a;
    printf("第一行%d %d %d\n",*p++,(*p)++,*q++);//证明*q++是先取*q的值打印,然后指针存储的地址自增,并不会改变a的值 
    printf("第二行%d\n",a);
    p=&a;q=&a;
    printf("第三行%d %d %d %d\n",a,*p,(*q)++,a);//证明printf函数运行顺序从右往左 
    printf("第四行%d %d %d %d\n",a,++(*p),++(*q),a);
    printf("第五行%d ",a);
    printf("%d ",*(p++));//证明*(p++)和*p++是一样的,都是先取*p的值打印,然后指针存储的地址自增 
    printf("%d",a);
    return 0;
} 

输出结果:


结论:

*p++是先取*p的值打印,然后指针p中存储的地址自增。
(*p)++是先取*p的值打印,然后让这个值自增。
*(p++)和*p++是一样的运行顺序。
++*p和++(*p)是一样的,都是先取*p的值,让这个值自增,再打印。

换种说法:

*p++是先取出*p的值打印,然后让p++
(*p)++是先取出*p的值打印,让这个值++
*(P++)是先取出*p的值打印,让p++
++*p和++(*p)都是先取出*p的值,让这个值++,再打印。

相关文章

  • 指针变量的自增的区别 *p++ (*p)++ *(p++)

    输出结果: 结论: *p++是先取*p的值打印,然后指针p中存储的地址自增。(*p)++是先取*p的值打印,然后让...

  • 指针

    C语言细节之指针 1、 后缀++和--比*的优先级高,所以*P++与*(P++)等价。它自增P并返回P自增前所指向...

  • 谈*p++、(*p)++、*(p++)的区别

    *p++代表先取出*p的值,然后早对p+1,也就是地址加一,指向下一个地址。(*p)++表示对*p的值加一,*(p...

  • 2018-08-13 NDK Day2

    指针++: 指针是指向地址的.*p 指针,p++ 使用一个指针 array,++aray,数据 数组存储的是一块内...

  • iOS (1) --C语言

    1、当你写: least = MIN(*p++, b); 代码时会发生什么事? 结果是:((p++) <= (b)...

  • c++的指针操作p+i与p++的对比

    c++的指针操作p+i与p++的对比 文字不如图解易懂,上图啦,图中的p为指向整型的指针 下面用代码验证,运行环境...

  • js中添加对象类型的数组

    var arry=[]; for(var p=0;p

  • 内存相关

    Q1打印结果char * ptr = "Lion";print("%c",p++);print("%c",p);答...

  • 指针操作分析——"p++"、"*p

    其计算结果非常有趣: 【1】初始状态p = 0x6dfeb0*p = 20 【2】p++的情况p = 0x6dfe...

  • 2020-03-10

    问题:在打印输出出,*p++ 对于p进行了重新赋值,所以导致 p[I] 打印的数据总是向后挪动一位 笔记:数组a+...

网友评论

      本文标题:指针变量的自增的区别 *p++ (*p)++ *(p++)

      本文链接:https://www.haomeiwen.com/subject/jxqjaftx.html