C语言概述

2.1

程序调整

某些窗口环境会在单独的窗口运行程序,然后在程序运行结束后自动关闭窗口。
如果遇到这种情况,可以在程序中添加额外的代码,让窗口等待用户按下一个键后才关闭。一种方法是,在程序的return语句前添加一行代码:
getchar();
让程序等待击键,窗口会在用户按下一个键后才关闭。

2.2示例解释

请添加图片描述

2.2.1 第1遍:快速概要

stdio.h是C编译器软件包的标准部分,它提供键盘输入和屏幕输出的支持。
C程序包含一个或多个函数,它们是C程序的基本模块。
圆括号表明main()是一个函数名。int表明main()函数返回一个整数,void表明main()不带任何参数。
注释在/*和*/两个符号之间,这些注释能提高程序的可读性。注意,注释只是为了帮助读者理解程序,编译器会忽略它们。
左花括号表示函数定义开始,右花括号(})表示函数定义结束。
%d告诉计算机以何种形式输出num的值,打印在何处。

2.2.2 第2遍:程序细节

1.#include指令和头文件

#include <stdio.h>的作用相当于把stdio.h文件中的所有内容都输入该行所在的位置。
这是一种“拷贝-粘贴”的操作。
include 文件提供了一种方便的途径共享许多程序共有的信息。

#include这行代码是一条C预处理器指令(preprocessor directive)。通常,C编译器在编译前会对源代码做一些准备工作,即预处理(preprocessing)。

该文件名的含义是标准输入/输出头文件。通常,在C程序顶部的信息集合被称为头文件(header)。

在大多数情况下,头文件包含了编译器创建最终可执行程序要用到的信息。特定C实现的文档中应该包含对C库函数的说明。这些说明确定了使用哪些函数需要包含哪些头文件。例如,要使用printf()函数,必须包含stdio.h头文件。

注意 为何不内置输入和输出

为何不把输入和输出这些基本功能内置在语言中。原因之一是,并非所有的程序都会用到I/O(输入/输出)包。轻装上阵表现了C语言的哲学。
正是这种经济使用资源的原则,使得C语言成为流行的嵌入式编程语言

2.main()函数

函数是C程序的基本模块。
int是main()函数的返回类型。这表明main()函数返回的值是整数
返回给操作系统

3.注释

被/* */两个符号括起来的部分是程序的注释。写注释能让他人(包括自己)更容易明白你所写的程序。

4.花括号、函数体和块

{
}
所有的C函数都使用花括号标记函数体的开始和结束。这是规定,不能省略。

5.声明

int num;

声明是C语言最重要的特性之一。在该例中,声明完成了两件事
。其一,在函数中有一个名为num的变量(variable)。其二,int表明num是一个整数(即,没有小数点或小数部分的数)。

int是C语言的一个关键字(keyword),表示一种基本的C语言数据类型。

示例中的num是一个标识符(identifier),也就一个变量、函数或其他实体的名称。
在C语言中,所有变量都必须先声明才能使用。

命名

给变量命名时要使用有意义的变量名或标识符
如果变量名无法清楚地表达自身的用途,可在注释中进一步说明。这是一种良好的编程习惯和编程技巧。

C99和C11允许使用更长的标识符名,但是编译器只识别前63个字符。对于外部标识符,只允许使用31个字符。

可以用小写字母、大写字母、数字和下划线\(_\)来命名.而且,名称的第1个字符必须是字符或下划线,不能是数字。

表2.1 有效和无效的名称

请添加图片描述

操作系统和C库经常使用以一个或两个下划线字符开始的标识符(如,_kcab),因此最好避免在自己的程序中使用这种名称。标准标签都以一个或两个下划线字符开始,如库标识符。这样的标识符都是保留的。

C语言的名称区分大小写

C语言更加国际化,C99和C11根据通用字符名(即UCN)机制添加了扩展字符集。其中包含了除英文字母以外的部分字符。

声明变量的4个理由

把所有的变量放在一处,方便读者查找和理解程序的用途。
声明变量会促使你在编写程序之前做一些计划。
声明变量有助于发现隐藏在程序中的小错误,如变量名拼写错误。
如果事先未声明变量,C程序将无法通过编译。

C99之前的标准要求把声明都置于块的顶部,这样规定的好处是:把声明放在一起更容易理解程序的用途。C99 允许在需要时才声明变量,这样做的好处是:在给变量赋值之前声明变量,就不会忘记给变量赋值。

6.赋值

赋值表达式语句 赋值是C语言的基本操作之一。
![[Pasted image 20230715222726.png]]
可以给num赋不同的值,这就是num之所以被称为变量(variable)的原因。
注意,该赋值表达式语句从右侧把值赋到左侧。另外,该语句以分号结尾。

  • 赋值语句实际上表达式语句。
    • 标号语句
    • 复合语句
    • 表达式语句
    • 选择语句
    • 迭代语句
    • 跳转语句

7.printf()函数

printf()函数用参数来做什么?该函数会查看双引号中的内容,并将其打印在屏幕上。

printf("I am a simple ");
printf("computer.\n");
printf("My favorite number is %d because it is first.\n", num)

上面的第1行把I am a simple传递给printf()函数。该信息被称为参数,或者更确切地说,是函数的实际参数(actual argument)
在C语言中,实际参数(简称实参)是传递给函数的特定值,形式参数(简称形参)是函数中用于储存值的变量。

换行符是一个转义序列(escape sequence)。转义序列用于代表难以表示或无法输入的字符。如,\t代表Tab键,\b代表Backspace键(退格键)。每个转义序列都以反斜杠字符(\)开始。

参数中的%d在打印时有什么作用?
参数中的%d被数字1代替了,而1就是变量num的值。%d相当于是一个占位符,其作用是指明输出num值的位置。%提醒程序,要在该处打印一个变量,d表明把变量作为十进制整数打印。

8.return语句

有返回值的C函数要有return语句。

该语句以return关键字开始,后面是待返回的值,并以分号结尾。如果遗漏 main()函数中的 return 语句,程序在运行至最外面的右花括号(})时会返回0。因此,可以省略main()函数末尾的return语句。但是,不要在其他有返回值的函数中漏掉它。因此,强烈建议读者养成在 main()函数中保留 return 语句的好习惯。

return语句是一种跳转语句。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值