基本概念: 预处理指令、函数、变量和语句。 后几章会对这些概念进行更详细的描述。
- 给出程序,描述如何对该程序进行编译和链接。
- 讨论如何使程序通用。(简单程序的一般形式:指令、函数、语句)
- 说明如何添加说明性解释(即注释)
- 介绍变量。(类型、声明、赋值、初始化)
- 说明利用scanf函数把数据读入变量的方法 。(读入输入)
- 介绍常量。(定义常量的名字)解释C语言的命名(标识符)规则。
- 给出C程序的布局(书写)规范。
编译和链接
为运行程序,首先用文本编辑器生成含有程序代码的文件,该文件的扩展名.c 通常被编译器需要。
将程序转化为机器可以执行的形式。通常包含以下3个步骤:
- 预处理 执行以# 开头的指令
- 编译 将程序翻译成机器指令(即目标代码)
- 链接 将编译产生的目标代码与所需的其他附加代码整合产生完全可执行的程序
一般使用集成开发环境(IDE)进行 编辑、链接、执行、调试程序
指令 函数 语句
即使是最简单的C程序也依赖3个关键的语言特性:
- 指令:在编译前修改程序的编辑命令 所有指令都是以字符#开头的。指令默认只占一行,每条指令的结尾没有分号或其他特殊标记。
- 函数:被命名的可执行代码块,如main 函数。 C语言就是函数的集合。函数分为两大类:程序员编写的函数和库函数。
int main(void)
- main 前面的int 表示该函数将返回一个整数值。
- 圆括号中的void 表明main 函数没有参数。
return 0;
- 作用使main 函数终止(从而结束程序)
- 指出main 函数的返回值是0
- 语句:程序运行时执行的命令 常用返回语句(return )和函数调用语句。 C语言规定每条语句都要以分号结尾。(例外:复合语句不以分号结尾)
注释
即文档说明(识别信息):程序名、编写日期、作者、程序的用途以及其他相关信息。
/* This is a comment */
/* 这是注释 */
- /* 标记注释的开始,*/ 标记注释的结束。
- 注释可占用多行。简短的注释还可以与程序中的其他代码放在同一行。
// This is a comment
// 这是注释
- 该种风格的注释会在行末自动终止。
- 每行前面都必须有//
变量
在程序执行过程中需要有一种临时存储数据的方法。C语言中这类存储单元被称为变量。
- 类型 每一个变量都必须有一个类型。类型用来说明变量所存储的数据的种类。类型会影响变量的存储方式以及允许对变量进行的操作,所以选择合适的变量是非常关键的。
- 声明 在使用变量前必须对其进行声明(为编译器所做的描述)。 首先指定变量的类型,然后说明变量的名字。如果几个变量具有相同的类型,就可以把他们的声明合并。每一条完整的声明语句都要以分号结尾。
- 赋值 变量通过赋值的方式获得值。
- 初始化 当程序开始执行时,某些变量会被自动设置为0,而大多数变量则不会。没有默认值并且尚未在程序中被赋值的变量是未初始化的。除了赋值来进行初始化,也可在变量声明中加入初始值。
读入输入 输出
为了获取输入,需要用到scanf 函数。(f : format 格式化,与printf 中的f 相同)
- scanf 函数和printf 函数都需要使用格式串(format string ) 来指定输入或输出数据的形式。
- scanf 函数需要知道将获得的输入数据的格式。 printf 函数需要知道输出数据的显示格式。
scanf("%d", &i); //读入一个整数,并将其存储到int 型变量i 中
scanf("%f", &x); //读入一个浮点数,并将其存储到float 型变量x 中
//& 运算符在使用scanf 函数时通常是必需的
输出,采用printf 函数
- 显示字符串
- 显示变量的值
- 显示表达式的值
printf("To C, or not to C: that is the question.\n"); //显示字符串
printf("Height: %d\n", height); //显示出变量的当前值
printf("%d\n", height * length * width); //显示任意数值表达式的值
常量
当程序中含有常量时,建议给这些常量命名。以防后续阅读的人不了解该常量的含义。
- 可以采用称为宏定义(macro definition ) 的特性给常量命名。一般全采用大写字母与下划线。
- 还可以利用宏来定义表达式。当宏包含运算符时,必须用括号把表达式括起来。
标识符
在编写程序时,需要对变量、函数、宏和其他实体进行命名。这些名字称为标识符(identifier )
- 在C语言中,标识符可以含有字母、数字和下划线,但是必须以字母或者下划线开头。
- C语言是区分大小写的。C对标识符的最大长度没有限制,尽量使用表意明显的标识符。
symbol_table current_page name_and_address
- 遵循只使用小写字母的规范(宏命名除外)
- 为了使名字清晰,必要时插入下划线
symbolTable currentPage nameAndAddress
- 避免使用下划线
- 把标识符中的每个单词用大写字母开头,第一个字母有时也大写
C程序的书写规范
- 不能把整个程序都写在一行里,因为每条预处理指令都需要单独成行。
- 缩进有助于轻松识别程序嵌套
- 空行可以把程序划分成逻辑单元
空格参考以下回答:
本章涉及了C语言的代码规范,故摘取两个知乎回答进行详细说明:
原文链接:代码之间为什么要加空格? - 知乎 (zhihu.com) 部分摘取如下:
其实这跟自然语言英文文本标点符号后加空格的意义是一样的。英文不是中文日文韩文这种方块字,天生需要用空格分割单词。这样人眼便可以将一句话里面的单词轻易分开。但如果标点符号之后不加空格,人眼会很自然的把标点符号前后的单词连同标点符号一起看成一坨,与“空格分隔单词”这一习惯矛盾,自然影响阅读。逗号句号这种只占下面空间的还好,要是问号叹号分号这种全尺寸的标点,怕不是要搞死你的眼睛
原文链接:写代码时,缩进使用 tab 还是空格? - 知乎 (zhihu.com) 部分摘取如下:
空格在各种情况下代码都是你想要的样子。而 tab 仅仅当你与代码作者的 tab 尺寸设定为相同时,代码才好看。
以上两篇文章都相当优秀,建议看全文。
本文介绍了C语言的基本概念,包括编译和链接的过程,程序的通用性,注释的添加,变量的类型和声明,以及输入输出操作。强调了预处理指令、函数、语句在C程序中的作用,并讲解了C程序的书写规范,如缩进、空格和标识符的使用。
548

被折叠的 条评论
为什么被折叠?



