zoukankan      html  css  js  c++  java
  • 指针的基本运用一

    指针,对于新人而言或许觉得很难,那么小编就想说明下,这是因为你接触的太少,其实指针也是有套路的。

    首先,先看下指针是如何赋值的样式图:

    &代表取地址。即&后面跟的不管是什么,他都代表一个地址。

    上图简单明了,有两种int类型指针赋值方法。

    从其中,我们能看出什么?

    或许有人认为第二种方式更能懂一点,就是一个int类型指针p2等于a的地址。

    那么第一种又该如何理解呢?

    首先理解前,我们全得看编译器如何理解的,先打印下看看结果如何:

    打印效果图:

    我们从中能观察出,p他就是指针的地址。而*p才是真正的a值。

     大相径庭的说法就是:p是地址,存放6的地址,而*p变相于变量,因为他可以直接打印。

    就像一座房子住六个人,这房子在某某村某某号,地址就是如同某村某号,类似这样的意思。

    既然知晓了指针最基本的赋值法,我们继续深研一下。

    我们如何将指针值改变下呢?或许有人会这样想吧,如下图。

     打印结果为:

    是不是让人无语的打印结果,数字竟然莫名其妙的变为乱七八糟的数字。

    就是说明了指针本身无法改变,很难理解?看看上图,编译器就是最好的结果。他无法打印成7.

    那么如何才能打印呢?看下图:

    打印结果:

    是不是很简单的方法。

    但是记住:前面说了指针如同房子地址,现在加入一个人或者两个人了,他的地址没变是可以肯定的了,还是原来的p。

    那我们看看他a的值有没有变化?就是说房子里住几口人?打印结果:

    咦,是不是很奇怪,我变动的是指针p的值,这跟a有什么关系呢?

    这里就有一个概念性的规则。改变指针值,能改变该地址上变量的值,即a的值。

    意思就是房子地址没变,房子里多了两人。

    下面就来多个例子验证下,仔细看图,边写边打印,就是最好的效果图:

    打印效果图:证明声明没有错误。

    两个指针如何赋值呢?

    打印效果图:证明交换地址没有问题。

    记住:指针变量就是类似写法 int *p;一样。指针变量就是变量。

    那么变量之间也可以赋值吗?试试就知道了,如下图:

     打印效果报错。有个警告。

    改成这样后,照样能打印指针b的值,如下图:

    打印效果:

    那么又说明了一个概念性,地址只能和地址相交换,变量只能和变量间赋值。否则无法打印想要的结果。甚至报错。

     文字纯属于小编的见解,仅供参考用的,如有不妥,请见谅。

    条条英符铸平凡,行行代码显乾坤;
  • 相关阅读:
    缓存算法之LRU与LFU
    银行家算法
    死锁,死锁的四个必要条件以及处理策略
    找出无序数组中位数的方法
    HTTP状态码
    进程调度算法
    宽字节wchar_t和窄字节char的相互转换
    胜天半子
    ? 题目 一道超难的奥数题,猜生日. A告诉B他生日的月份,告诉C他生日的日期 B说:“如果我不知道A的生日,那C肯定也不知道." C说:”本来我不知道,现在我知道了.“ B说:”哦,那我也知道了.
    有对夫妇生有一男一女,一天晚上,成员中的一个杀了另一个,剩下2个成员,1个是帮凶1个是目击者
  • 原文地址:https://www.cnblogs.com/VisiousDragon/p/7976565.html
Copyright © 2011-2022 走看看