zoukankan      html  css  js  c++  java
  • 简单指针详解

    • 废话少说,首先看两个例子:
    • Ps1:
    结果:
    • Ps2

    • 解析

       上下两个main()内容一致,为什么结果不同,主要是fun()内部的差别,首先要明白所谓指针不过也是变量而已,跟int、long等变量一样,只不过他的值为地址罢了,没有什么神秘的,第一个fun(q)是把q的值赋给另一个指针p,j就像两个int变量a,b,a=b一样。此时p指向的内容就是q指向的内容,即为1。然后p被重新赋值p的值发生变化,那他指向的地址就变了啊,这时p指向的内容为22。而q指向不变,因为q并未发生变化,就像a,b一样,b如何变跟a没关系。所以q指向的内容仍为1,并不变。下面那个例子变化是因为fun()中并不是p的值发生了变化p并没有被重新赋值 ,而是“ *p “”这个整体发生了变化,*p即为p指向的内容,也就是说是p所指向的地址里的内容变了,所以结果为22.

    • 总结

      简单来说就是:第一个是有俩变量p和q,刚开始他们指向一致,指向的内容始终没变,后来p变了但不关q的事,输出的是*p,结果自然不变;第二个是从始至终他俩指向都没变,但是他们指向的内容发生了变化,结果自然变了。

      ps:你要是还没明白,我在做个比喻。有两根绳子,一根黄色,一根红色,还有一根香蕉,一个苹果。例一就是开始红绳、黄绳都拴着苹果,后来黄绳不栓苹果了,去栓香蕉了,结果问你红绳栓啥,自然是苹果,并没变。例二就是开始红绳、黄绳都栓着苹果,后来小明把苹果换成了香蕉,问你,红绳栓的是啥,自然都是是香蕉。

      

  • 相关阅读:
    js实现图片上传前预览
    WPF实现鼠标拖动控件并带有中间动效
    Redis 挂了自动重启的shell 脚本。
    PIE-Basic教程目录索引
    从零实现Linux一键自动化部署.netCore+Vue+Nginx项目到Docker中
    在BlazorWebAssembly中使用Autofac
    angular报错:Cannot assign to a reference or variable
    ASP.NET Core Logging Solution
    Typora + PicGo-Core + Custom Command 实现上传图片到图床
    mysql like多个
  • 原文地址:https://www.cnblogs.com/zwsmile/p/12500665.html
Copyright © 2011-2022 走看看