美文网首页
C语言中*p,p,&p的区别

C语言中*p,p,&p的区别

作者: 这个杀手蹲了半天有点冷 | 来源:发表于2018-11-18 21:13 被阅读0次

    *p是一个变量,是一个变量。
    p是一个地址一个内存地址,不是一个变量。
    int *p; printf("%p",p);
    会打印出一个16位地址
    &p中&是求地址符,例如&a是求a的地址,&b是b的地址

    在同一代码中,*p和&p的关系?

    上面说过执行int *p之后,p是一个地址但也是一个变量。
    &p是一个地址,顺着这个地址能找到一个值,这个值是p,然后p也是一个地址,顺着这个地址能找到另外一个值p
    p不再是一个地址,是一个变量就跟int a=1,b=2;里一样。
    通俗一点解释找一本《C语言程序设计》的书,图书馆有一本《索引大全》的书,里面记录着馆内所有书的位置
    通过《索引大全》——《C语言程序设计》的位置——《C语言程序设计》
    上面三个东西分别是&p,p,&*p

    相关文章

      网友评论

          本文标题:C语言中*p,p,&p的区别

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