从Java角度看C指针和数组的教程

我现在是大学新生,主修CS。 我刚刚完成了“计算机程序设计入门”课程。 我喜欢它,觉得我学到了很多东西。

几天前,我读了乔尔的“Java学校的危险” 。 “链接列表?” 我想,“那些都不是很难。我们已经完成了一些已经上课的人。” 这是正确的,因为在Java中,它们并不那么难。 但无论如何,我试着用C语言写一个。

它太难了!

Joel是对的,我认为…… Java为你处理了许多小小的东西,它真的不那么难。 但我决心克服我学校的Java-tude并学习如何在C中写下这个dang链表。

所以我想,有人问,有没有人知道学习C的好(和免费)在线教程,而不是试图提出很多很小的问题。 具体来说,学习如何处理指针,以及所有这些符号( &***[]以及它们如何协同工作)我想我已经非常精通Java了,所以我不需要关于如何写“Hello,World!”的教程 程序。 但是我绝对不准备进入任何超级高级的C或C ++,因为我所知道的只是Java。

任何帮助赞赏!

一些教程:

  • 从Java迁移到C ++
  • 从Java学习C语言
  • C for Java Programmers课程 (课程笔记和幻灯片)

一些好的指针答案可能会有所帮助:

  • 理解指针有什么障碍,克服它们可以做些什么?
  • 什么是void指针,什么是空指针?
  • 数组,有什么意义?
  • 人们对C指针有什么困难?
  • 从Java切换到C ++ – 简单的方法是什么?
  • Java是通过引用传递的吗?

如果你能超越Pascal语法,那么第一个是关于指针和它们的陷阱的该死的好读物。

检查并查看您的课程是否需要系统编程。 它通常是一个300级的二年级课程,我下学期就注册了。 它非常重视在Unix中使用C + GCC。

检查您的CS部门库(如果存在)。 我拿起了K&R的副本,在寒假期间工作。

这适用于C ++,而不是C; 但直到大约3.7章左右,才会以对可能的C程序员有用的方式讨论机器级别的内容。

互联网上有许多指南用于学习指针。 这是一个:我使用的http://pweb.netcom.com/~tjensen/ptr/pointers.htm 。

我也会向你推荐这本书: 黑客,剥削艺术第二版 。

这本书不会让你成为“黑客”。 除了大量的逆向工程/学习二进制代码,试验和错误等之外,其他任何事情都可以做到。 但是,它会向您介绍如何开始执行这些操作,并从根本上了解C的工作原理,包括指针。 它对assembly / C的介绍是我见过的最好的之一,因为它将引导您完成几个C示例以及如何使用命令行调试工具gdb来调查正在发生的事情。 这样你就可以看到C并看到组件。 这包括对指针的基本理解。

本书将作为一个副作用,为您介绍堆栈和堆,数据结构等。简而言之,阅读介绍部分将为您的课程其余部分带来很多好处。