只有你足够强,别人才会和你讲道理。
文章: 280
浏览: 3,031,704
  • 博主:笨木头
  • 关注:Unity、Net Core、Blazor
  • 邮箱:musicvs@163.com
笨木头  2014-10-31 21:20     其它     阅读(3944)     评论(4)
转载请注明,原文地址: http://www.benmutou.com/archives/1907
文章来源:笨木头与游戏开发
 

我已经把《C++ Primer》一书准备好了,如果这本《C++ Primer Plus》继续这么瞎闹的话,我就换主角~!

 

没错,这书连if while都还没介绍呢,就开始把指针搬出来了,虽然只是简单介绍..

这目录编排我也是醒了。

 

那么,按照书上的进度,今天来初步说说指针。

但,今天周五,你懂的,就随便水一下,因为我怕到周一又忘了。

 

 
笨木头花心贡献,啥?花心?不呢,是用心~

转载请注明,原文地址: http://www.benmutou.com/archives/1907

文章来源:笨木头与游戏开发
 

1.枚举

那么,枚举是什么呢?(小若:等等~!说好的指针呢?)

大部分高级语言里应该都有枚举了,所以也没什么好介绍的。

使用是这样的:
[cce_cpp]
// 定义
enum MonsterType {

   enMonster_nor,

  enMonster_hard,

}

// 声明一个枚举变量 MonsterType mType;

// 使用 if(mType == enMonster_nor) {   log("去死吧~!"); } else if(type == enMonster_hard) {   log("哦呵呵,您好,这是我这个月的薪水,都给您了哦,我最崇拜您了,您是我这辈子最....(1万字省略)"); } [/cce_cpp]
 

2.什么是指针

因为这不是真正的C++教程,只是补充而已,所以基础概念我就不说。

指针就是能够指向内存空间的东西,没错,它只是指向内存空间,它本身不是内存空间。

 

好了,不唠叨。

 

3.声明指针

声明指针变量是很简单的事情,如下代码:
[cce_cpp]
int num = 10;
int *p = #
[/cce_cpp]
没错,即使是我们以前的普通变量也是有内存地址的,使用&符号就能取得它的内容地址。

然后,我们的指针变量p就是专门用来存放内存地址的。

在声明变量的时候,加上*号就代码这是指针变量。

 

记住,这是声明~接下来如果没学过指针的,就会混乱了。

 

4.使用指针

指针要怎么使用呢?很简单,如下代码:
[cce_cpp]
    int num = 10;
    int *p = #

  *p = 20;

  std::cout << *p << "\n";   std::cout << num << "\n"; [/cce_cpp]
最后,*p和num都是20。 p是指针变量,它保存了num变量的内存地址。 而*p就是这个内存地址上面的值,也就是我们的变量num的值了。

于是,*p = 20 就代表把这个内存地址上的值改为20。

重点来了: 1.假设num的内存地址0xffffff,这个地址上的存储的内容是数字10 2.p是一个指针,它保存了num的内存地址,所以p的值是0xffffff,这个地址上的存储的内容是数字10 3.*p代表是p指向的那个内存地址上面所存储的内容,也就是数字10,换句话说,*p的值是10 4.指向*p = 20,相当于把p指向的内存地址上面的内容改为20 5.由于num的内存地址就是p指向的地址,所以num在内存中保存的值已经改变了 6.最终num的值也会变成20

明白了么?(小若:用中文再说一遍) 嗯,用中文再说一遍的话,那就是: 因为p指向的内存地址就是num所在的内存地址,所以通过num和*p都能改变这个地址上的内容。 一句话,此刻*p相当于num,可以进行各种操作(赋值、加减法等等) (小若:早点说中文多好啊!非得显摆你那半调子日语吗?!)

 

5.指针外传

有时候,我们可以这样声明指针:
[cce_cpp]
int *num;

// 但你千万不能这么使用 *num = 100; [/cce_cpp]
咋一看,这么使用好像很正常,和刚刚说的一样。

但,请注意,指针num在声明的时候并没有赋值,也就是说,这个指针现在不知道是指向哪里的。

所以,随便使用这样一个不知道是指向哪的指针,很可能会破坏我们的程序。

 

比如吖,我们本来是想声明一个指向我们一根头发的指针,但是,我们没有给它赋值。

于是,这指针就不知道指向哪了,它可能还指向它以前曾经指过的地方。

万一这指针以前指向的地方是我们的腰部以下的部位呢?

 

万一我们用这个指针执行了“剪掉指针所指的地方,全剪了”。

没错,本以为剪的是头发,结果呢!把腰部以下给剪了!

这下半辈子怎么办,就再也不能跑步了(你想哪去了?)

 

 

6.结束了

好,今天就水到这里了~下次见

 

 

 


 

 
4 条评论
  • StoneFu 2015-10-13 17:43:50

    你好,木头兄弟。现在在哪里发展?
    0回复
    • 博主 糟糕_树叶的mut 2015-10-14 08:28:26

      又陪创业去了,不过不搞游戏了,哈哈哈
      0回复
  • 我爱纪录片app 2014-11-03 09:32:55

    貌似没什么人看啊~~不过我还是来顶你把~
    0回复
    • 博主 糟糕_树叶的mut 2014-11-03 11:24:21

      主要是用来督促我自己的
      0回复
发表评论
粤ICP备16043700号

本博客基于 BlazorAnt Design Blazor 开发