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

*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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 曾经的我也有一个写作的梦,可是随着时间的推移,早已把它淡忘,别说写作,就是字都很少写,书也很少看,今天也想试着...
    知梅阅读 332评论 1 4
  • 上周去看了毒液 剧情嘛 前半部分有点拖沓 不过也不用太纠结 毕竟是爆米花电影 但是毒液的反差萌 在后半部分承包了不...
    梦想家R先生阅读 274评论 0 1
  • 中国的孩子,只要生,不管他好不好,只要多,不管他才不才。生他的人,不负教他的责任。虽然“人口众多”这一句话,很可以...
    樂活人生百态阅读 490评论 0 0