设为首页
收藏本站
切换到窄版
登录
立即注册
找回密码
搜索
搜索
本版
帖子
用户
快捷导航
论坛
BBS
C语言
C++
NET
JAVA
PHP
易语言
数据库
IE盒子
»
论坛
›
IE盒子
›
C语言
›
C语言编程之旅--2第一个程序
返回列表
发帖
查看:
160
|
回复:
0
C语言编程之旅--2第一个程序
[复制链接]
亽玍戲侞
亽玍戲侞
当前离线
积分
21
3
主题
10
帖子
21
积分
新手上路
新手上路, 积分 21, 距离下一级还需 29 积分
新手上路, 积分 21, 距离下一级还需 29 积分
积分
21
发消息
发表于 2023-1-15 19:59:57
|
显示全部楼层
|
阅读模式
凡事预则立,不预则废
正式开始编程之旅前,需要制定一个小目标。之前看到很多人问『学会C语言后可以做什么?』。其实C语言作为高级语言的老前辈,产生出非常多的优秀作品:Linux Kernel, Nginx, Redis, SQLite, RT-Thread, Tinyhttpd等等。
基本所有教程都喜欢从让C语言初学者从Hello World出发,然后每部分通过特定的示例讲解语言特性。本系列是以独特视角讲解C语言语法,游戏基本所有人都会感兴趣的点,所以就将一个小游戏指定为完成本系列文章后的目标——『命令行贪吃蛇』。
本节目标
看完本节可以:
学习集成开发环境软件的基本使用;
掌握创建工程和文件的方法;
掌握C语言文件基本结构;
掌握C语言基本语法;
了解基本输出使用方法;
本节主要是完成一个『命令行贪吃蛇』欢迎页面的输出,如下图所示:
文件结构
默认启动开发环境会自动加载上次工程,建议每次创建不同工程进行管理。先关闭上一章节创建的工程,点击文件->关闭项目。
创建工程
创建名称为2.1的控制台程序工程。
C语言源码就编写在扩展名为.c的文件中,这样的文件被称为
源文件
。当然文件名可以改成其他名称,只要文件内容满足要求即可。所有源文件需要放在项目页的源文件下。
需要在main.c文件中输入如下代码。不要被这么多行数吓到,这里有很多类似的。接下来会对每一部分进行讲解。
头文件
在main.c源文件中,第一行字符比较独特,一行字符以#开始。
#include <文件名称>
#include &#34;文件名称&#34;这里#include后面跟一个文件名称,而这句往往包含在源文件头部,所以也被称为
头文件
。一般使用<>包含标准或系统级头文件,使用&#34;&#34;包含自定义头文件。具体作用在后面小节再做介绍。
入口函数
从源码第3~34全部为main函数的内容。它的基本结构为:
函数可以看做一个黑盒子,有输入并在函数内部对数据进行处理,然后将结果输出出来。举个形象的例子,函数可以理解为一个洗衣店提供的服务,输入的是一堆脏衣服,输出结果是一件件干净衣服。这里的返回值就是干净衣服,main就是洗衣店店名,函数参数表就是一堆脏衣服。
现在需要记住的仅仅是名称为main的函数是整个
C语言的入口
,想要写程序就必须声明这样一个结构。
而在一对花括号{}内部的主体语句,就是我们主要编写代码的地方。
源码解析
接下来针对主体语句中的逐行讲解。
注释
源码第4行,语句以连续两个左斜杠//开头,这是源代码中的
注释语句
。
// 打印游戏标题注释语句本身不会产生任何效果,程序在执行过程中会直接跳过。初学者可能好奇『那需要注释语句做什么?』其实,注释语句主要是给人看的。一般解释接下来的语句或当行语句作用。另外一种格式是使用一对符号/**/表明注释语句,与//不同的是前者可以
注释多行
,而后者只能
注释单行
。可以这样注释:
#include <stdio.h> // 这是头文件,一般源文件都要有
/* 这是多行注释
接下来会正式开始编码
先写非常重要main函数
*/
int main(int argc, char *argv[])
{
}
标准输出函数
开始介绍第二个函数,它就是
标准输出函数printf
。这是C标准中规定实现的输出函数,而输出对象就是电脑命令行终端。虽然标准中有规定printf函数,但在使用前需要添加标准输入输出头文件stdio.h。因此,源程序第1行为
#include <stdio.h>当输入错误的头文件std.h或没有包含需要的头文件时,在编译时会返回如下错误
不同头文件中包含的函数不同,后面还会涉及到其他头文件,需要用相关函数时会再介绍。此时,要调用printf函数非常简单,如下所示
printf(字符串);值得注意的是,行尾紧跟英文分号;。它是C语言语句(除注释语句外)结束的标识,一般每行都会有。若忘记写结尾分号,编译时也会返回异常
需要输出的字符串在C语言中,需要包含在&#34;&#34;中。字符串内容可包含英文、中文、符号、空格等。在字符串中有\n符号组合,它表示
转义字符
。比如转义字符\n表示换行,光标会移到下一行开头处继续输出。
因此,源码第5~23行就是完整打印『命令行贪吃蛇』游戏标题,是不是非常酷?一直鼓励学习程序手动输入,但这个排版工作量非常大,很打击人的信心,需要的可以从下方获取排版好的标题字符串。当然也可以通过『点阵字在线生成器』,自己生成或者手动排版想要的标题效果。
################################################################################
#### #### ###### ######## ######## ####### ## ##
### ### ###### ######## ######## ###### ### ##
## #### ## ##### ######## ####### ##### #### ############
## ###### ## #### ####### ####### #### ##### ############
## ###### ## #### ####### ####### ### ###### ############
## ######### # ### ###### ## ###### ## ####### ############
### ##### # ## ###### ## ###### # ######## ############
#### ### ## ## ###### ## ###### ######## ###
####### ## ### # ##### ##### ####### ###
########### ## ### # ##### ##### ## ####### ############
## ####### ## #### ##### #### ### ###### ############
## ####### ## #### #### ###### #### #### ##### ############
## ###### ## ##### #### ###### #### ##### #### ############
### ## ###### ### ######## ### ##### #### ############
#### ### ###### ### ######## ### ###### ### ##
###### ###### ####### ## ########## ## ####### ## ##
################################################################################源码第25~31行全部都是调用标准输出函数,让命令行输出选择游戏难度的游戏选项。这章节暂时不涉及标准输入函数,在后续章节将会学习如何让用户选择想要的选项,并开始游戏。
源码第33行可以省略,在后续函数章节再做详细介绍。
附录A 转义字符
转义字符
意义
\a
响铃(BEL)
\b
退格(BS) ,将当前位置移到前一列
\f
换页(FF),将当前位置移到下页开头
\n
换行(LF) ,将当前位置移到下一行开头
\r
回车(CR) ,将当前位置移到本行开头
\t
水平制表(HT)
\v
垂直制表(VT)
\&#39;
单引号
\&#34;
双引号
\\
反斜杠
关于本系列
本系列的相关文章
幺零幺零:C语言编程之旅--0前言
最后,希望大家能喜欢这系列,
若喜欢也请不要吝惜点赞和收藏o( ̄▽ ̄)d
,我们回见。
回复
使用道具
举报
返回列表
发帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
快速回复
返回顶部
返回列表