大家好, 欢迎来到初学者C语言编程课程｡
我叫杰森·菲顿, 我将是你们的导师｡
我想感谢你报名参加这门课｡
这将是一个吨的乐趣, 我会尽我所能来激励你, 并帮助你学习所有关于C编程语言｡
我们开始吧
首先, 我想告诉你一点关于我自己的事情｡
我有宾厄姆顿大学的计算机科学硕士学位, 还有纽约州立大学奥斯威戈分校的计算机科学学士学位｡
我在2001年获得了硕士学位｡
我做软件开发已经超过16年了｡
我已经做了11年的在线讲师｡
我教过20多门不同的课程, 从面向对象编程到编译器理论｡
我有大量的计算机科学编程经验｡
我已经使用C语言编程超过16年了｡
基本上, 我一找到第一份工作, 就开始写C代码｡
我还在多所大学开设了初级C和高级C课程, 因此我在课程设置和向学生介绍C概念方面有丰富的经验｡
我在施乐公司做了10到12年的软件开发人员｡
当我在这里工作时, 我主要写C代码, 也写一些C++代码｡
我们在Linux平台上运行整个源代码库, 并编写实时代码｡
我主要专注于面向对象语言和移动编程｡
这就是我喜欢做的事｡
比如C++和Java, 但C语言才是我真正擅长的｡
我也专注于编写高质量的代码｡
这是一个至关重要的概念, 我会在整个课程中强调｡
我希望你们专注于编写好的代码, 不仅仅是编写能工作的代码,
而是编写能帮助程序更容易维护的代码｡
所以我们在这门课上要讲的一些主题包括以下内容｡
顺便说一下, 当我们讨论这些话题时, 我们将提供｡
我将提供演讲材料｡
我将提供练习｡
我将提供评估｡
我将在集成开发环境中编辑代码时, 向您介绍代码和编程概念｡
所以这将是真正的动手｡
我们先来谈谈C语言的一般概念, 给你们一个大概的介绍.
我将告诉你C编程语言是如何高效的｡
它也是便携式的｡
您可以跨多个平台编写它｡
它具有强大的功能和灵活性, 并且面向程序员｡
我还提供了一个简短的C历史, 只是为了提供一些背景｡
接下来我们将描述C的一些常见语言特性｡
C是一种命令式语言｡
这是最现代的语言类型｡
它是围绕功能组织的｡
它有模块设计, 是一种结构化的编程语言｡
你也可以在编写代码时进行自上而下的规划｡
使用C语言的优势将集中在C语言对于小而快的程序来说是很棒的｡
它非常可靠, 非常容易学习和理解｡
如果你从一个同行或开发人员那里得到一个C程序, 你将能够很快地跟上它｡
我们将使用一个现代的跨平台集成开发环境｡
我们要编辑代码｡
我们还将使用IDE来调试我们的代码, 这非常重要｡
所以这将作为一个概念来介绍｡
我将带您了解整个环境, 并向您展示如何使用该工具｡
我们首先从基本概念开始｡
我将向你们描述一个C程序是什么样子的, 并给你们一个例子｡
我将向你们展示一个基本的C程序的结构｡
我们将讨论如何在代码中提供注释, 以及如何使用printf函数提供基本输出｡
我们将通过一个Hello World示例, 并让您用C编写第一个程序｡
我们将继续讨论makefile｡
我们不会深入讨论makefile的很多细节, 但我想简单介绍一下,
以帮助您理解如何使用此工具构建和编译代码｡
我们将讨论最基本的编程概念, 即创建和使用变量｡
变量是将程序的内存､ 数据和内存与名称相关联的思想｡
你将在代码中创建许多变量和许多不同的语句｡
我们将讨论数据类型, 包括float double和char数据类型｡
然后在课程的后面, 我们将讨论更高级的数据类型, 如枚举, 然后通过使用typedef关键字提供您自己的数据类型｡
我将提供基本操作员的信息｡
比如做加法或减法, 数学运算符｡
它还包括逻辑运算符, 如and or或｡
这就像是一个决策陈述｡
我们将讨论如何使用赋值运算符将数据赋值给变量｡
在代码中做决定｡
非常重要的编程概念｡
我们会谈到这个｡
这些被称为条件语句｡
关键字如if和switch｡
我们将提供一些例子, 并介绍它的各种构造｡
接着讨论重复代码｡
C中的循环结构主要是for while和do while｡
他们都一样｡
只是语法有点不同｡
我们将讨论如何使用数组存储数据和对数据进行两种不同的分类｡
所以我们将讨论如何定义初始化数组, 然后是多维数组,
这有点像矩阵电子表格类型的概念｡
功能｡
函数是与C编程语言相关的最大､ 最重要的概念之一｡
一切都不应该是应该使用和组织围绕一个功能｡
这被称为模块类型编程｡
你将学习如何声明一个函数, 如何使用它, 如何向它传递数据, 如何返回数据｡
我们还将讨论更高级的概念, 如按值调用和按引用调用调试｡
调试是一个至关重要的概念, 对所有程序员来说都是必不可少的｡
它是一个发现并修正错误的想法｡
我们将讨论调用堆栈, 它可以显示程序是否在崩溃的地方崩溃｡
非常重要的概念｡
我将为您提供许多c程序员常犯的错误, 以便您在看到这些错误时了解如何修复它们｡
然后是编译器, 编译器会检查你的代码, 确保语法正确｡
如果不是, 它会给你错误消息或警告｡
你需要理解编译器告诉你什么｡
所以我们将讨论编译器消息以及如何理解它们｡
我们将讨论结构｡
你将学习所有关于结构体的知识, 结构体与数组类似, 它存储数据｡
这是一个数据结构｡
我们将讨论如何初始化结构体, 如何有嵌套结构的概念｡
对于那些熟悉对象的人来说, 它可能与之相关,
但不是健壮的字符串, 它本质上是双引号内的C字母数字字符串｡
这是基本的数据类型之一, 但它被认为是数组, 这是一个有点不同的概念｡
我们要通过它｡
我们将讨论一些你可以对字符串执行的操作等等｡
指针
指针可能是这门课中最重要的概念｡
所以我们会花很多时间在这上面｡
指针是这个概念, 看看你在哪里必须管理自己的内存｡
如果你用其他语言编程, 这可能是一个不熟悉的概念, 因为这通常是为你做的｡
具体来说, 如果你用Java或C语言编程, 你就不必担心指针｡
在C语言中, 你必须担心管理自己的内存｡
所以指针是个大问题｡
我将告诉你如何定义和使用指针, 如何在函数和数组中使用它们,
如何调用不同的标准库调用来创建内存, 以及如何解引用指针｡
这是一个重要的概念, 就像我说的, 我们会花很多时间在这上面｡
我会给你们提供很多例子, 很多真实世界的类型场景, 让指针真正进入你们的大脑,
因为如果不完全理解指针, 你们就不能使用C编程语言｡
我们会花很多时间在这上面｡
我们将要学习的预处理器是在编译器之前发生的一个步骤｡
具体来说, 它们是你需要理解的指令, 比如define和include｡
我们会通过的｡
我们将介绍输入和输出, 以及如何在控制台中读取和写入数据｡
我们讨论了printf｡
我们将通过使用getchar和scanf格式, 说明符等来更详细地了解这一点｡
我们还将讨论如何读取和写入文件数据｡
这是另一个重要的概念, 当你写代码的时候, 它是一种存储数据的方式｡
C中有许多不同的文件操作, 我们将讨论其中的一些｡
C是一种非常低级的语言, 它可以高效快速地做很多事情, 而文件的写入和读取就处于这种低级水平｡
你可以和操作系统进行非常非常好的交互｡
有一个标准的C库, 它与C编程语言一起提供, 其中有很多不同的函数可以使用｡
有字符串函数, 字符串操作函数, 有数学函数, 实用函数｡
我们将介绍所有这些基本函数, 这些函数可以帮助您更有效地编写代码,
就像不同的库和其他语言一样｡
C将再次为您提供一些基础知识, 以便对文件进行读写操作字符串｡
如果你想得到数学函数的余弦和正切值, 这些都是语言提供的｡
我们会学到的｡
这些是我们将要讨论的主要话题, 开始话题｡
我们还不打算讨论任何高级主题, 但我们将介绍基础知识｡
因此, 在本课程结束时, 您应该能够编写初学者C程序, 了解C语言的基本方面,
知道如何提供输入和输出｡
做文件i o钻取指针的概念, 等等｡
在我们学习这门课程的过程中, 你还将专注于编写高质量的代码, 高效的代码｡
这非常非常重要｡
再次, 它影响软件生命周期的维护阶段｡
因此, 如果你想找到并修复你的错误, 如果你有高质量的代码, 那就容易多了｡
所以当我们通过例子, 当我们学习这些概念时, 我们将学习如何以正确的方式来做｡
我们将学习如何使事物模块化, 以便将事物分组为函数｡
我们要确保在不同的文件中, 我们有低依赖性, 低耦合, 这样它们就不会相互影响｡
当你的代码中有很多依赖项时, 你可以｡
更容易找到并修复bug｡
如果你想在程序中添加新的函数或代码, 如果它是模块化的, 如果它是有组织的函数,
那就容易多了｡
因此, 我们将专注于编写高质量代码的概念｡
我们不仅要让事情运转起来, 还要用正确的方式｡
在课程结束时, 您将能够找到并修复自己的错误｡
成为一名优秀程序员的一个重要部分是解决问题｡
我们将重点讨论解决问题的技巧, 如何调试代码, 以及如何成为一个高效的问题解决者｡
这包括理解编译器消息｡
它理解如何运行调试器, 如何使用调用堆栈, 所有这些好东西｡
解决问题的能力将在所有的课程中得到训练｡
您将了解我前面提到的C编程语言主题的基本方面｡
这将是基本的C语言｡
最后, 你会玩得很开心｡
我会尽力激励你的
我会举一些有趣的例子｡
我不希望你们在上课或做练习的时候睡着, 所以我会让它们生动活泼,
我会尽我所能来激励你们, 并在整个课程中帮助你们｡
所以我很期待｡
我真的很兴奋, 我希望每个人都准备好学习很多关于C编程语言｡
谢谢大家｡