C语言(基础语法)
---------------C语音程序设计 立体化教程 — 人民邮电出版社--------------
第一章 c语言概述
c语言特点
- c语言是一种极具生命力的语言。
- c语言具有结构语言的特点,程序之间很容易实现段的共享。
- c语言的主要结构成分是函数。
- 运算符丰富。
- 数据类型丰富。
- 比较接近硬件。
- 语法限制少和程序设计自由度大。
- 生成目标代码质量高、程序执行效率高。
- 可移植性好。基本不做修改就能用于各种型号的计算机的各种操作系统。
说明:
- 每一个c语言源程序都必须有且只有一个主函数。
- 一个函数由两部分组成:函数的首部和函数体。
- 函数体由大括号“{}”括起来。
- 函数调用语句,printf函数的功能是将要输出的内容送到显示器去显示。
- 双引号内的字符串按原样输出,但“\n”是转义字符,代表换行。
说明:
- #include称为文件包含命令,扩展名为.h的文件称为头文件,利用<>或者双引号" "括起来,表明将该文件包含到程序中来,成为程序的一部分。
- 每一个说明,每一条语句都必须以分号结尾。但预处理命令,函数头和花括号“ } ”之后不能加分号。
- 一行内可以书写多个语句。例:“x=2,y=3;”
- //表明注释部分,也可写成 /* … * /
c语言基本结构
概括地说,一个c语言源程序可由如下5部分组合而成:
- 预处理部分(文件包含属于预处理内容)
- 变量说明部分
- 函数原型声明部分
- 主函数部分
- 自定义函数部分
注意:
- 并非所有的c语言源程序都必须包含上述5个部分,一个最简单的c语言程序可以只有包含文件的部分和主函数部分。
- 每个c语言源程序总是从主函数开始执行,且总是在主函数中结束执行。
- 每个c语言源程序可以有零个或多个自定义的非主函数,自定义非主函数的形式与主函数形式相同,只是它的名称不能是main。
c语言程序的开发过程
常见错误
- 没有加入头文件stdio.h
- 主函数首字母大写
- 语句结束后忘记加分号
- 英文状态下的双引号打成中文状态下的双引号
第二章 c语言数据与运算
基本数据类型
特点:其值不可以再分解为其他类型,它是自我说明的。
构造数据类型
种类:数组类型、结构体类型、共用体(联合)类型、枚举类型
指针类型
用来表示某个变量在内存储器中的地址
空类型
调用自定义函数时,调用后并不需要向调用者返回函数值
标识符
标识符是对变量名、函数名、标号和其他各种用户定义的对象命名。
命名规则:标识符由字母、数字或者下划线组成,且第一个字符必须是字母或者下划线。
注意:
- 标识符区分大小写
- 标识符的有效长度取决于具体的c编译系统
- 标识符的书写一般采用具有一定实际意义的单词
- 标识符不能与c语言的关键字同名,也不能与自定义函数或者c语言库函数同名
关键字
关键字是具有固定名字和特定含义的特殊标识符,也称保留字,不允许程序设计者将它们另作别用。
c语言中大约有32个关键字
数据类型定义:typedef
数据类型:int long short struct union unsigned void signed volatile auto extern register static char const double enum float
运算符:sizeof
语句:break continue default do else for goto if return switch while
直接常量
- 整数常量:十进制整数、八进制整数、十六进制整数
(1)十进制整数:每位数0-9,
(2)八进制整数:最高位是0,每位数是0-7
(3)十六进制整数:以0x或0X开头,每位数字位可以是0-9、A-F - 实数常量:也叫浮点型,实数常量也叫实数或浮点数。在C语言中只用十进制表示。
(1)十进制数形式:必须有小数点。
(2)指数形式:e或E之前必须有数字,指数必须为整数。 - 字符常量:只能用单引号括起来,只是单个字符,不能是字符串。
常用转义字符
\n:换行
\t:横向跳格(跳到下一个输出区)
\b:退格
\r:回车
\f:走纸换页
\:反斜杠字符
|’:单撇号字符
":双撇号字符
\a:报警,相当于“007”
\ddd:1-3位8进制数所代表的字符
\xhh:1-2位16进制数所代表的字符
符号常量
c语言中,可以用一个标识符来表示一个常量,称之为符号常量。
一般形式:#define 标识符 常量
注意:
宏定义必须以#define开头,标识符和常量之间不加等于号,行末不加分号。
宏定义#define应该放在函数外部,这样可以控制程序结束。
符号常量的标识符用大写字母,变量标识符用小写字母,以示区分。
变量
变量在使用前必须定义,变量在内存中占据一定的存储单元。
整型变量
- 基本型:int,在内存中占4个字节。
- 短整型:short int 或 int,在内存里占2个字节。
- 长整型:long int 或 long,在内存中占4个字符。
- 无符号型,unsigned
说明:(书写规则)
类型说明符与变量之间至少要有一个空格间隔。
定义多个相同类型的变量,但变量间要用逗号间隔。
必须用分号“ ;”结束。
实型变量
- 单精度:float,在内存中占4个字节,有效数字6-7位。
- 双精度:double,在内存中占8个字节,有效数字15-16位。
说明:书写规则与整型相同
说明:
实型变量由有限的存储单元组成,能提供的有效字数有限,存在舍入误差。
一个单精度实型变量只能保证7位有效数字,后面的数字是无意义的,并不精准地表示该数。应当避免将一个很大的数和一个很小的数直接相加或相减,否则会“丢失”。
没有实现加11的运算,出现丢失。
自动类型转换
- 若参与运算的类型不同,则先转换成同一类型,然后进行运算。
- 转换按数据长度增加的方向进行,以保证精度不降低。
- 所有浮点运