百科问答小站 logo
百科问答小站 font logo



指向指针的指针的指针的指针是什么?指向指针的指针的指针的指针是什么? 第1页

  

user avatar   zorrolang 网友的相关建议: 
      

这种问题让我想起前两天接孩子放学时看见一群幼儿园的孩子在比谁更厉害,小A说他可以数到二百,小B表示不服说他可以数到五百,小C傲娇的说他可以数到一千,就这样:

“五千”

“一万”

“十万”

“百万”

“千万”

“一亿”

“十亿”

“百亿”

……

直到一个孩子喊出“我可以数到无数!”

就像刚学会数数的小孩子会对越大的数字产生未知的“膜拜”,就像我4岁的女儿经常认为一万零一减一万比23减15要难很多一样,实际上他完全是在低维度下对高维度的莫名崇拜而以。

“指向指针的指针的指针的指针……”这种东西根本就还是指针,说更直白一点就还是一个整数而已。只是我们不常这样用,初学者先学了数组,又学了一级指针然后又学了二级指针,于是乎有些人可能会以为越多级的指针越是什么“高深”的东西,就像小孩子们以为能数的越多越厉害一样。实际上根本不是如此,你能理解数的越多不能代表越厉害是因为你学会了比单纯的数数更高级一点的数学知识,你知道数学的复杂程度一般不在于数字大小。同理当你掌握了更多的计算机知识后,你会知道编程的难点和重点根本不在那好多级的指针上。即使当我们需要指针来表示多层级关系时我们是放在结构体里嵌套使用的,比如:

       #include <stdio.h>  struct planet {         char name[256];         struct country *country;         /* Others about a planet */ };  struct country {         char name[256];         struct city *city;         /* Others about a country */ };  struct city {         char name[256];         struct district *dist;         /* Others about a city */ };  struct district {         char name[256];         struct street *street;         /* Others about a district */ };  struct street {         char name[256];         struct building *build;         /* Others about a street */ };  struct building {         char name[256];         struct family *family;         /* Others about a building */ };  struct family {         char name[128];         char dad[64];         char mom[64];         /* Others about a family */ };  int main() {         struct family myfamily = {"myfamily", "mydad", "mymom"};         struct building someonebuilding = {"someonebuilding", &myfamily};         struct street ZhongGuanCun = {"zhongguancun", &someonebuilding};         struct district HaiDian = {"haidian", &ZhongGuanCun};         struct city Beijing = {"beijing", &HaiDian};         struct country China = {"china", &Beijing};         struct planet Earth = {"earth", &China};          printf("Myfamily is %s
",                 Earth.country->city->dist->street->build->family->name);         return 0; }     

这只是一个例子,实际上现实中上述每个结构都应该使用链表,hash表或者树等多重结构,我这里就省事了。

或者你还想了解一下指针和结构体的更复杂应用的例子:

读了这些代码你还觉得好多级的指针是那么值得一论的东西吗?我这里写的不过是计算机科学的九牛一毛,学习任重道远,不要在刚学会数数的时候就用极其有限的知识试图“钻研高深的问题”。




  

相关话题

  进入内核态究竟是什么意思? 
  为什么不把push ebp和mov ebp, esp的操作通过硬件方式做进call指令中? 
  为什么物理科普读物读起来津津有味,计算机科普却很枯燥且很少见? 
  为什么许多人建议本科学数学,研究生阶段转金融或者计算机?学数学的发展方向只有纯数学计算机以及金融吗? 
  数据结构与算法中,树一般会应用在哪些方面?为什么? 
  Python 的练手项目有哪些值得推荐? 
  为什么当年 Android 选择用 Java 作为开发语言? 
  HTTPS可以防止中间人篡改内容吗? 
  准大一,零基础自学C语言,有什么简单易懂的自学书籍和课程推荐吗? 
  做数据分析的女孩子,职业发展前景在哪里?数据分析枯燥吗? 

前一个讨论
单链表的头结点问题?
下一个讨论
既然低维生物无法想象理解高维生物,为什么会有高维生物这个概念呢?





© 2025-01-18 - tinynew.org. All Rights Reserved.
© 2025-01-18 - tinynew.org. 保留所有权利