C语言编写程序
C语言广泛的应用场景
编写操作系统
各类IDE软件
各类应用程序
C语言的运行步骤
从源程序到可执行程序,需要经过编译,链接两步
引言:一个C语言程序
计算n的阶乘 的程序
该程序的流程图
C语言由函数组成,如例子中有factorial, main, scanf, printf
每个C语言程序有且只有一个main函数,它是程序的入口点
函数是一种子程序,针对特定的功能进行设计,可以化繁为简
程序最基本的功能是对数据进行处理,如例中的n, i, fact
程序对数据处理过程的控制结构有四种,顺序,判断,当型循环,直到型循环
变量都有类型,不同类型的数据结构不同
C语言的语法要点
标识符
用户自定义标识符:
包括用户自己定义的函数名、变量名等。是字母、下划线、数字的组合。为了便于理解,应该用有意义的英文表示
代码规范
变量名、函数名应该用有意义的英文
afdsed
string
多个英文单词可以用下划线链接
my first program
my_first_program
同一个控制结构范围内的语句要缩进
一个缩进单位=4个空格,
可以用tab实现
对于不懂的地方,可以加注释或者空行标识
注释可用// 或/**/
关键字:
C语言规定的有专门用途的关键字,用户自定义的标识符不能与之相同,一共32个
基本数据类型:
void:声明函数无返回值或无参数
char:字符型类型数据,属于整型数据的一种
int:整型数据,通常为编译器指定的机器字长
float:单精度浮点型数据,属于浮点数据的一种
double:双精度浮点型数据,属于浮点数据的一种
修饰类型
short:修饰int,短整型数据,可省略
long:修饰int,长整形数据
signed:修饰整型数据
unsigned:修饰整型数据
复杂数据类型
struct:结构体声明
union:共用体声明
enum:枚举声明
typedef:声明类型别名
sizeof:得到特定类型或特定类型变量的大小
存储级别说明
auto:指定为自动变量,由编译器自动分配及释放。通常在栈上分配
static:指定为静态变量
register:指定为寄存器变量,建议编译器将变量存储到寄存器中使用,也可以修饰函数形参,建议编译器通过寄存器而不是堆栈传递参数
extern:指定对应变量为外部变量,即在另外的目标文件中定义
const:与volatile合称“cv特性”,指定变量不可被当前线程/进程改变
volatile:与const合称“cv特性”,指定变量的值有可能会被系统或其他进程/线程改变,强制编译器每次从内存中取得该变量的值
跳转结构
return:用在函数体中,返回特定值(或者是void值,即不返回值)
continue:结束当前循环,开始下一轮循环
break:跳出当前循环或switch结构
goto:无条件跳转语句
分支结构
if:条件语句
else:条件语句否定分支(与if连用)
switch:开关语句(多重分支语句)
case:开关语句中的分支标记
default:开关语句中的“其他”分治,可选。
循环结构
for:for循环结构
do:do循环结构,do 1 while(2);的执行顺序是1->2->1...循环,2为循环条件,典型的直到型循环结构
while:while循环结构,while(1) 2;的执行顺序是1->2->1...循环,1为循环条件 以上循环语句,当循环条件表达式为真则继续循环,为假则跳出循环。典型的当型循环结构
常量:
常量是固定数值的对象,如整型常量123,浮点型常量12.3,字符型常量'@',字符串型常量'adw123',布尔型常量false等
运算符:
对各种数据类型进行计算的运算符。
根据运算符操作对象的数量不同,可分为一目、二目、三目运算符
一目运算符
!
二目运算符
>, <, ==, ||, &&, +, -, *, /, =
三目运算符
? :
分隔符:
如; , # 等。
其中分号;特别重要,C语言中要求每一句完整的语句都必须以分号做结尾,不给出分号直接换行会编译错误
C语言的主要语法单位
表达式:
运算符与预算对象的有意义组合构成表达式
i=i+1
变量:
是指定内存中的一段存储空间以存储数据。
变量声明的最基本形式是:
变量类型 变量名
语句:
语句是程序中最基本的执行单位。
以表达式+分号的形式构成。
其中分号是必须的。
最简单的语句是只有一个分号的语句。
最简单的语句:表达式+分号
i=i+1;
分支语句
if(a>b)
x=a;
else
x=b;
循环语句
while(i<100){
sum = sum + i;
i=i+1;
}
复合语句:用大括号将若干语句包裹在内形成的语句
函数:
函数是完成特定任务的独立模块,
是C语言中唯一的子程序形式。
接收0-n个参数,返回1个结果
(即返回值,这个返回值可以使空)
输入输出:
C语言通过stdio.h文件中定义的输入输出函数,
用以在屏幕上输出数据(scanf),
或接收键盘输入的数据(printf)
小结
例程:在屏幕上显示hello world
main函数是程序的入口点
main函数也有类型,这个类型跟它的返回值一致
注意最后一个语句return 0, 就是返回一个整数0
C语言的函数都有返回值;按照惯例,main函数返回0表示程序正常,返回其他数字表示不正常,用于调试错误
例程:将华氏度转换为摄氏度
使用变量前一定要声明,声明变量时要指明变量的数据类型,常用类型有char, int float等。
给变量名起名必须望文生义,符合代码规范
算数运算出现组合表达式时,不同运算符是有优先级区别的(跟高等数学差不多, p22)
赋值运算是将值赋予变量,赋值运算符是“=”, 其优先级小于算数运算符
格式化输出函数printf
其调用格式为printf(格式控制, 输出参数1,输出参数2,...)
第一个参数是指定输出格式(可省略),
其中%s代表输出字符,%d输出十进制数字, %h输出16进制数字, \n表示换行