C语言编写程序

1.

C语言广泛的应用场景

1.1.

编写操作系统

1.1.1

各类IDE软件

各类应用程序

2.

C语言的运行步骤

2.1.

从源程序到可执行程序,需要经过编译,链接两步

3.

引言:一个C语言程序

3.1.

计算n的阶乘 的程序

3.1.1

该程序的流程图

C语言由函数组成,如例子中有factorial, main, scanf, printf

每个C语言程序有且只有一个main函数,它是程序的入口点

函数是一种子程序,针对特定的功能进行设计,可以化繁为简

程序最基本的功能是对数据进行处理,如例中的n, i, fact

程序对数据处理过程的控制结构有四种,顺序,判断,当型循环,直到型循环

变量都有类型,不同类型的数据结构不同

r

例如此程序输入13,期结果超出了int型的取值范围,会输出一个错误结果int占32位的时候,最大可以赋值为:2147483647。也就是0x7fffffff(不是2的32次方,因为最高位是符号位,因此最大值是2的31次方减一)

4.

C语言的语法要点

4.1.

标识符

4.1.1

用户自定义标识符:
包括用户自己定义的函数名、变量名等。是字母、下划线、数字的组合。为了便于理解,应该用有意义的英文表示

代码规范

变量名、函数名应该用有意义的英文

afdsed

string

多个英文单词可以用下划线链接

my first program

my_first_program

同一个控制结构范围内的语句要缩进

一个缩进单位=4个空格,
可以用tab实现

对于不懂的地方,可以加注释或者空行标识

注释可用// 或/**/

4.1.2

关键字:
C语言规定的有专门用途的关键字,用户自定义的标识符不能与之相同,一共32个

A

基本数据类型:

void:声明函数无返回值或无参数

char:字符型类型数据,属于整型数据的一种

int:整型数据,通常为编译器指定的机器字长

float:单精度浮点型数据,属于浮点数据的一种

double:双精度浮点型数据,属于浮点数据的一种

B

修饰类型

short:修饰int,短整型数据,可省略

long:修饰int,长整形数据

signed:修饰整型数据

unsigned:修饰整型数据

C

复杂数据类型

struct:结构体声明

union:共用体声明

enum:枚举声明

typedef:声明类型别名

sizeof:得到特定类型或特定类型变量的大小

D

存储级别说明

auto:指定为自动变量,由编译器自动分配及释放。通常在栈上分配

static:指定为静态变量

register:指定为寄存器变量,建议编译器将变量存储到寄存器中使用,也可以修饰函数形参,建议编译器通过寄存器而不是堆栈传递参数

extern:指定对应变量为外部变量,即在另外的目标文件中定义

const:与volatile合称“cv特性”,指定变量不可被当前线程/进程改变

volatile:与const合称“cv特性”,指定变量的值有可能会被系统或其他进程/线程改变,强制编译器每次从内存中取得该变量的值

E

跳转结构

return:用在函数体中,返回特定值(或者是void值,即不返回值)

continue:结束当前循环,开始下一轮循环

break:跳出当前循环或switch结构

goto:无条件跳转语句

F

分支结构

if:条件语句

else:条件语句否定分支(与if连用)

switch:开关语句(多重分支语句)

case:开关语句中的分支标记

default:开关语句中的“其他”分治,可选。

G

循环结构

for:for循环结构

do:do循环结构,do 1 while(2);的执行顺序是1->2->1...循环,2为循环条件,典型的直到型循环结构

while:while循环结构,while(1) 2;的执行顺序是1->2->1...循环,1为循环条件 以上循环语句,当循环条件表达式为真则继续循环,为假则跳出循环。典型的当型循环结构

4.1.3

常量:
常量是固定数值的对象,如整型常量123,浮点型常量12.3,字符型常量'@',字符串型常量'adw123',布尔型常量false等

4.1.4

运算符:
对各种数据类型进行计算的运算符。
根据运算符操作对象的数量不同,可分为一目、二目、三目运算符

一目运算符

二目运算符

>, <, ==, ||, &&, +, -, *, /, =

三目运算符

? :

4.1.5

分隔符:
如; , # 等。

其中分号;特别重要,C语言中要求每一句完整的语句都必须以分号做结尾,不给出分号直接换行会编译错误

4.2.

C语言的主要语法单位

4.2.1

表达式:
运算符与预算对象的有意义组合构成表达式

i=i+1

4.2.2

变量:
是指定内存中的一段存储空间以存储数据。
变量声明的最基本形式是:
变量类型 变量名

4.2.3

语句:
语句是程序中最基本的执行单位。
以表达式+分号的形式构成。
其中分号是必须的。
最简单的语句是只有一个分号的语句。

A

最简单的语句:表达式+分号

i=i+1;

B

分支语句

if(a>b)
x=a;
else
x=b;

C

循环语句

while(i<100){
sum = sum + i;
i=i+1;
}

D

复合语句:用大括号将若干语句包裹在内形成的语句

4.2.4

函数:
函数是完成特定任务的独立模块,
是C语言中唯一的子程序形式。
接收0-n个参数,返回1个结果
(即返回值,这个返回值可以使空)

4.2.5

输入输出:
C语言通过stdio.h文件中定义的输入输出函数,
用以在屏幕上输出数据(scanf),
或接收键盘输入的数据(printf)

7.

小结

6.

例程:在屏幕上显示hello world

6.1.

6.1.1

main函数是程序的入口点

6.1.2

main函数也有类型,这个类型跟它的返回值一致

6.1.3

注意最后一个语句return 0, 就是返回一个整数0

6.1.4

C语言的函数都有返回值;按照惯例,main函数返回0表示程序正常,返回其他数字表示不正常,用于调试错误

5.

例程:将华氏度转换为摄氏度

5.1.

5.1.1

使用变量前一定要声明,声明变量时要指明变量的数据类型,常用类型有char, int float等。

5.1.2

给变量名起名必须望文生义,符合代码规范

5.1.3

算数运算出现组合表达式时,不同运算符是有优先级区别的(跟高等数学差不多, p22)

5.1.4

赋值运算是将值赋予变量,赋值运算符是“=”, 其优先级小于算数运算符

5.1.5

格式化输出函数printf
其调用格式为printf(格式控制, 输出参数1,输出参数2,...)
第一个参数是指定输出格式(可省略),
其中%s代表输出字符,%d输出十进制数字, %h输出16进制数字, \n表示换行