首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >理解指针的障碍是什么?可以做些什么来克服它们?

理解指针的障碍是什么?可以做些什么来克服它们?
EN

Stack Overflow用户
提问于 2008-08-08 06:17:52
回答 27查看 84.3K关注 0票数 461

为什么指针对许多C或C++的大学水平的新生甚至老学生来说是一个主要的困惑因素?是否有任何工具或思维过程可以帮助您理解指针在变量、函数和更高级别上是如何工作的?

有什么好的做法可以让人们达到“啊哈,我知道了”的水平,而不会让他们陷入整体概念的泥潭?基本上,类似于演练的场景。

EN

回答 27

Stack Overflow用户

发布于 2008-08-08 21:50:16

在我的第一堂比较科学课上,我们做了以下练习。诚然,这是一个有大约200名学生的报告厅…

教授在黑板上写道:int john;

约翰站起来

教授写道:int *sally = &john;

萨利站起来,指着约翰。

教授:int *bill = sally;

比尔站起来,指着约翰

教授:int sam;

山姆站起来

教授:bill = &sam;

比尔现在指着山姆。

我想你明白我的意思了。我想我们花了大约一个小时来做这件事,直到我们复习了指针赋值的基础。

票数 155
EN

Stack Overflow用户

发布于 2008-08-16 11:35:12

我发现一个对解释指针很有帮助的类比是超链接。大多数人都能理解,一个网页上的一个链接“指向”互联网上的另一个页面,如果你可以复制和粘贴那个超链接,那么它们都会指向同一个原始网页。如果您去编辑原始页面,然后沿着这些链接(指针)之一,您将获得新的更新页面。

票数 128
EN

Stack Overflow用户

发布于 2008-08-08 06:30:00

指针似乎让这么多人感到困惑的原因是,它们大多很少或根本没有计算机体系结构方面的背景。由于许多人似乎不知道计算机(机器)实际上是如何实现的-在C/C++中工作似乎很陌生。

练习是要求他们实现一个简单的基于字节码的虚拟机(在他们选择的任何语言中,python对此都很有效),并使用专注于指针操作(加载、存储、直接/间接寻址)的指令集。然后让他们为该指令集编写简单的程序。

任何需要比简单的加法稍微多一点的东西都会涉及到指针,他们肯定会得到它。

票数 49
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5727

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档