笨办法学c语言pdf下载,笨办法学C 练习5:一个C程序的结构

本文通过实例分析一个C程序的结构,讲解了#include指令、注释、main函数、变量声明、printf函数等关键概念,旨在帮助初学者理解代码组织。通过手动运行和Valgrind检查,引导读者逐行剖析代码细节,并提供附加题进行自我挑战。
摘要由CSDN通过智能技术生成

练习5:一个C程序的结构

你已经知道了如何使用printf,也有了可以随意使用的一些工具,现在让我们逐行分析一个简单的C程序,以便你了解它是如何组织的。在这个程序里你会编写一些不是很熟悉的东西,我会轻松地把它们拆开。之后在后面的几章我们将会处理这些概念。

#include

/* This is a comment. */

int main(int argc, char *argv[])

{

int distance = 100;

// this is also a comment

printf("You are %d miles away.\n", distance);

return 0;

}

手动输入这段代码并运行它,之后确保在Valgrind下不出现任何错误。你可能不会这样做,但你得习惯它。

你会看到什么

这真是一段无聊的输出,但是这个练习的目的是让你分析代码:

$ make ex5

cc -Wall -g ex5.c -o ex5

$ ./ex5

You are 100 miles away.

$

分解代码

当你输出这段代码时,可能你只弄清楚了这段代码中的一小部分C语言特性。让我们快速地逐行分解它,之后我们可以做一些练习来更好地了解每一部分:

ex5.c:1

这是一个include,它是将一个文件的内容导入到这个文件的方式。C具有使用.h扩展名作为头文件的惯例。头文件中拥有一些函数的列表,这些都是你想在程序中使用的函数。

ex5.c:3

这是多行注释,你可以在/*和*/之间放置任意多行。

ex5.c:4

这是一个你遇到的更复杂的 main 函数。操作系统加载完你的程序,之后会运行叫做main的函数,这是C程序的工作方式。这个函数只需要返回int,并接受两个参数,一个是int作为命令行参数的数量,另一个是char*字符串的数组作为命令行参数。这是不是让人难以理解?不用担心,我们稍后会讲解它。

ex5.c:5

任何函数都以{字符开始,它表示“程序块”的开始。在Python中用一个:来表示。在其它语言中,可能需要用begin或者do来表示。

ex5.c:6

一个变量的声明和同时的赋值。你可以使用语法type name = value;来创建变量。在C的语句中,除了逻辑语句,都以一个;(分号)来结尾。

ex5.c:8

注释的另一种形式,它就像Python或Ruby的注释。它以//开头,直到行末结束。

ex5.c:9

调用了我们的老朋友printf。就像许多语言中的函数调用,使用语法name(arg1, arg2);。函数可以不带任何参数,也可以拥有任何数量的参数。printf函数是一类特别的函数,可以带可变数量的参数。我们会在之后说明。

ex5.c:11

一个main函数的返回语句,它会向OS提供退出值。你可能不熟悉Unix软件的返回代码,所以这个也放到后面去讲。

ex5.c:12

最后,我们以一个闭合的}花括号来结束了main函数。它就是整个程序的结尾了。

在这次分解中有大量的信息,所以你应该逐行来学习,并且确保至少掌握了背后发生了什么。你不一定了解所有东西,但是在我们继续之前,你可以猜猜它们的意思。

附加题

对于每一行,写出你不理解的符号,并且看看是否能猜出它们的意思。在纸上写下你的猜测,你可以在以后检查它,看看是否正确。

回头去看之前几个练习的源代码,并且像这样分解代码,来看看你是否了解它们。写下你不了解和不能自己解释的东西。

这本书的目标是让读者掌握足够的C语言技能,从而可以自己用C语言编写程序或者修改别人的C语言代码,成为一名的程序员。但这并不完全是一本讲C语言编程的书,书中还重点介绍防御性编程。本书以习题的方式引导读者一步一步习编程,结构非常简单,共包括52个习题,每一个习题都重点讲解一个重要的主题,多数是以代码开始,然后解释代码的编写,再运行并测试程序,给出附加任务。此外,每个习题都配套教视频。 本书是写给过编程语言的读者的,本书有趣、简单,并且讲解方法独特,让读者了解众多C语言的基础知识和C程序中常见的缺陷,在慢慢增强自己的技术能力的同时,深入了解怎样破坏程序,以及怎样让代码更安全。 本书会随书附赠5个多小时充满激情的视频,这是一套完整的C语言视频课程! 作者Zed A.Shaw为急于自我提高编程技能(不限语言)的C语言者构建了一套课程,只要跟着,你会像迄今为止Zed教过的数百万程序员一样获得成功!只要你能自律、投入和坚持! 本书内容十分浅显易读,只要花2天到1周可以读完,读完后既可以获得几千行代码的C编程经验。本书会让你的每一分钟投入都有回报。你很快能会世界上强大的编程语言之一,成为一名C程序员。 在本书中,你将通过完成52个精心设计的习题来C语言。阅读书里的习题,看作者提供的视频,照着录入代码(不要复制和粘贴!),修正自己的错误,观察程序的运行。在这个过程中,你将会了解好的现代C代码长什么样子,如何有效地思考代码,如何更加有效地找出和修正错误。重要地是,你将掌握严密的防御性编程技术,不管你使用什么编程语言,利用这些技术你都可以创建避免缺陷并抵御恶意行为的软件。本书通过实用的项目,让你以致用,从而对自己新会的技能更有信心。Zed将教会你编写出色的C代码所需具备的诸多关键技能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值