嗨翻C语言第一章:C语言入门 进入C语言的世界_嗨翻C语言第一章:C语言入门 进入C语言的世界试读-查字典图书网
查字典图书网
当前位置: 查字典 > 图书网 > 编程 > 嗨翻C语言 > 第一章:C语言入门 进入C语言的世界

嗨翻C语言——第一章:C语言入门 进入C语言的世界

想知道计算机在想什么吗? 你需要为一款新游戏编写高性能的代码吗?你需要为Arduino编程吗?你需要在iPhone应用中使用高级的第三方库吗?如果是的话,C语言就可以帮上忙了。相比其他大多数语言,C语言的工作层次更低,因此理解C语言可以让你更清楚程序在运行时到底发生了什么,C语言还可以帮助你更好地理解其他语言。来吧,拿起编译器,很快你就能入门了。 C语言用来创建空间小、速度快的程序 C语言旨在创建空间小、速度快的程序。它比其他大多数语言的抽象层次更低,也就是说用C语言写的代码更加接近机器语言。 C语言的工作方式 计算机只理解一种语言——机器代码,即一串二进制0、1流。 你可以在编译器的帮助下将C代码转化为机器代码。 源代码 从创建一个源文件开始,源文件中是供人阅读的C代码。 编译 通过编译器运行源代码,编译器会检查错误,一旦它觉得没问题,就会编译源代码。 输出 编译器会创建一个叫可执行文件的新文件,文件中是机器代码,即计算机能够理解的0、1流,而这个文件就是可以运行的程序。 为了写出速度快、空间小、可移植性高的程序,人们常使用C语言。绝大多数的操作系统、其他计算机语言和大多数游戏软件都是用C语言写的。 完整的C程序长啥样? 为了创建完整的程序,需要在C源文件中输入代码。任何文本编辑器都可以创建C源文件,它们的文件名通常以.c结尾。我们来看一个典型的C源文件。 C程序通常以注释开头。 注释描述了文件中这段代码的意图,也可能包含一些许可证或者版权信息。在这个地方(或文件的任何地方)添加注释不是必需的,但加上是个好的做法,也是大多数C程序员希望看到的。 接下去是include部分。C 语言是一种很小的语言, 如果不使用外部库, 它几乎什么也干不了。为了告诉编译器程序要使用哪些外部代码, 需要包含(include)相关库的头文件。stdio.h是最常见的头文件,stdio库中包含了那些能在终端读写数据的代码。 在源文件中找到的最后一样东西是函数。所有的C代码都在函数中运行。对任何C程序来讲,最重要的函数是main()函数。main()函数是程序中所有代码的起点。 主函数 main()函数聚焦 计算机会从main()函数①开始运行程序。它的名字很重要:如果没有一个叫main()的函数,程序就无法启动。 main()函数的返回类型是int。这是什么意思呢?当计算机在运行程序时,它需要一些方法来判断程序是否运行成功,计算机正是通过检查main()函数的返回值来做到这一点。如果让main()函数返回0,就表明程序运行成功;如果让它返回其他值,就表示程序在运行时出了问题。 int main() { int decks; puts("输入有几副牌"); scanf("%i", &decks); if (decks < 1) { puts("无效的副数"); return 1; } printf("一共有%i张牌n", (decks * 52)); return 0; } 函数名在返回类型之后出现,如果函数有参数,可以跟在函数名后面。最后是函数体,函数体必须被花括号包围。 百宝箱 printf()函数用于显示格式化输出,它用变量的值来替换格式符,像这样: printf("%s说计数是%i", "阿星", 21); 当调用printf()时,可以包含任意数量的参数,但确保每个参数都要有一个对应的%格式符。 代码冰箱贴 学院21点扑克游戏小组的队员写了一些代码贴在寝室的冰箱上,但有人把冰箱贴弄乱了!你能用这些冰箱贴重组代码吗? /* * 计算牌面点数的程序。 * 使用“拉斯维加斯公开许可证”。 * (c)2014学院21点扑克游戏小组。 */ main() { char card_name[3]; puts("输入牌名: "); scanf("%2s", card_name); int val = 0; if (card_name[0] == 'K') { val = 10; } else if (card_name[0] == 'Q') { } else if (card_name[0] == ) { val = 10; } (card_name[0] == ) { } else { val = atoi(card_name); } printf("这张牌的点数是: %in", val); 0; } 冰箱贴归位 /* * 计算牌面点数的程序。 * 使用“拉斯维加斯公开许可证”。 * (c)2014学院21点扑克游戏小组。 */ main() { char card_name[3]; puts("输入牌名: "); scanf("%2s", card_name); int val = 0; if (card_name[0] == 'K') { val = 10; } else if (card_name[0] == 'Q') { } else if (card_name[0] == ) { val = 10; } (card_name[0] == ) { } else { val = atoi(card_name); } printf("这张牌的点数是: %in", val); 0; } 代码冰箱贴解答 学院21点扑克游戏小组的队员写了一些代码贴在寝室的冰箱上,但有人把冰箱贴弄乱了!请用这些冰箱贴重组代码。 /* * 计算牌面点数的程序。 * 使用“拉斯维加斯公开许可证”。 * (c)2014学院21点扑克游戏小组。 */ #include <stdio.h> #include <stdlib.h> Int main() char card_name[3]; puts("输入牌名: "); scanf("%2s", card_name); int val = 0; if (card_name[0] == 'K') { val = 10; } else if (card_name[0] == 'Q') { val = 10 ; } else if (card_name[0] == 'J' ) { val = 10; } else if (card_name[0] == 'A' ) { val = 11 ; } else { val = atoi(card_name); } printf("这张牌的点数是: %in", val); return 0; } 如何运行程序? C语言是一种编译型语言,也就是说计算机不会直接解释代码,而是需要将给人阅读的源代码转化(或编译)为机器能够理解的机器代码,这样计算机才能够执行。 为了编译代码,需要一个叫编译器的程序。GNU编译器套件(GNU Compiler Collection),也叫gcc,是最流行的C编译器之一。gcc可以在很多操作系统中使用,而且除了C语言,它还可以编译很多其他语言,最重要的是,它是完全免费的。下面是用gcc编译并运行程序的过程: 将前一页那道“代码冰箱贴”练习中的代码保存在一个叫cards.c的文件中。 在命令提示符或终端中使用gcc cards.c -o cards命令进行编译。 在Windows命令提示符中输入cards或在Mac和Linux终端中输入./cards运行程序。 百宝箱 在大部分机器中,可以用下面这个技巧来编译并运行代码: gcc zork.c -o zork && ./zork 这条命令只有在编译成功的情况下才会运行新程序,一旦编译过程中出了问题,它就会跳过运行程序这一步,仅仅在屏幕上显示错误消息。 试驾 让我们来看看程序能否成功编译和运行。在你的机器上打开命令提示符或终端,试试吧! 程序工作了! 恭喜!你已经成功编译并运行了C程序。gcc编译器从cards.c中提取出了供人阅读的源代码,并将其转换为cards程序中机器才能理解的机器代码。如果你用的是Mac或Linux,计算机会在一个叫cards的文件中创建机器代码;而在Windows中,所有程序的扩展名必须是.exe,因此这个文件叫cards.exe。 问:为什么我在Linux和Mac中运行程序时必须在程序前加上./? 答:因为在类Unix操作系统中,运行程序必须指定程序所在的目录,除非程序的目录已经列在了PAT环境变量中。 做事情 两类命令 到目前为止你看到的所有命令都可以分为以下两类。 做事情 C语言中大部分命令都是语句。简单的语句是一些动作,它们做事情,或告诉我们事情。你已经见过定义变量的语句、从键盘读取输入的语句以及向屏幕显示数据的语句。 split_hand(); 这是一条简单的语句。 这些命令被花括号包围,因此形成了块语句。 只有条件为真才去做事情 例如if这样的控制语句在运行代码之前会检查条件: if (value_of_hand <= 16) hit(); else stand(); 这是条件。 当条件为真时,if语句一般要做好几件事情,因此if语句通常和块语句一起使用: if (dealer_card == 6) { double_down(); hit(); } { deal_first_card(); deal_second_card(); cards_in_hand = 2; } 当把很多语句组合在一起,就创建出了块语句。块语句是由花括号围起来的一组命令。

展开全文


推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

《嗨翻C语言》其他试读目录

• 第一章:C语言入门 进入C语言的世界 [当前]
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  •