c语言是面向过程的。
c++是面向对象的。
一、32个关键字
auto | break | case | char | const |
continue | default | do | double | else |
enum | extern | float | for | goto |
if | int | long | register | return |
short | signed | sizeof | static | struct |
switch | typedef | union | unsigned | void |
volatile | while |
(1) char:声明字符型变量或函数
(2) double:声明双精度变量或函数
(3) enum:声明枚举类型
(4) float:声明浮点型变量或函数
(5) int:声明整型变量或函数
(6) long:声明长整型变量或函数
(7) short:声明短整型变量或函数
(8) signed:声明有符号类型变量或函数
(9) struct:声明结构体变量或函数
(10) union:声明共用体(联合)数据类型
(11) unsigned:声明无符号类型变量或函数
(12) void:声明函数无返回值或无参数,声明无类型指针(基本上就这三个作用)
2控制语句关键字(12个):
A循环语句
(1) for:一种循环语句
(2) do:循环语句的循环体
(3) while:循环语句的循环条件
(4) break:跳出当前循环
(5) continue:结束当前循环,开始下一轮循环
B条件语句
(1)if:条件语句
(2)else:条件语句否定分支(与if连用)
(3)goto:无条件跳转语句
C开关语句
(1)switch :用于开关语句
(2)case:开关语句分支
(3)default:开关语句中的“其他”分支
D返回语句
return:子程序返回语句(可以带参数,也看不带参数)
3存储类型关键字(4个)
(1)auto:声明自动变量一般不使用
(2)extern:声明变量是在其他文件正声明(也可以看做是引用变量)
(3)register:声明积存器变量
(4)static:声明静态变量
4其它关键字(4个):
(1)const:声明只读变量
(2)sizeof:计算数据类型长度
(3)typedef:用以给数据类型取别名(当然还有其他作用)
(4)volatile:说明变量在程序执行中可被隐含地改变
5C语言中的9中控制语句
goto语句:无条件转向;
if语句:判断语句;
while循环语句;
do-while语句:先执行循环体,然后判断循环条件是否成立.之后继续循环;
for语句:循环,可替代while语句;只是用法不同;
break语句跳出本层的循环;(只跳出包含此语句的循环)
continue语句:继续(一般放到循环语句里,不在执行它下面的语句,直接跳到判断语句
例:for语句,就直接跳到第二个分号处,while语句,就直接跳到while()的括号里;
switch语句:多相选择;
return语句:返回;
二、运算符丰富,有34种运算符
优先级 |
运算符 |
名称或含义 |
使用形式 |
结合方向 |
说明 |
1 |
[] |
数组下标 |
数组名[常量表达式] |
左到右 |
|
() |
圆括号 |
(表达式)/函数名(形参表) |
|||
. |
成员选择(对象) |
对象.成员名 |
|||
-> |
成员选择(指针) |
对象指针->成员名 |
|||
2 |
- |
负号运算符 |
-表达式 |
右到左 |
单目运算符 |
(类型) |
强制类型转换 |
(数据类型)表达式 |
|||
++ |
自增运算符 |
++变量名/变量名++ |
单目运算符 |
||
-- |
自减运算符 |
--变量名/变量名-- |
单目运算符 |
||
* |
取值运算符 |
*指针变量 |
单目运算符 |
||
& |
取地址运算符 |
&变量名 |
单目运算符 |
||
! |
逻辑非运算符 |
!表达式 |
单目运算符 |
||
~ |
按位取反运算符 |
~表达式 |
单目运算符 |
||
sizeof |
长度运算符 |
sizeof(表达式) |
|||
3 |
/ |
除 |
表达式 / 表达式 |
左到右 |
双目运算符 |
* |
乘 |
表达式 * 表达式 |
双目运算符 |
||
% |
余数(取模) |
整型表达式 / 整型表达式 |
双目运算符 |
||
4 |
+ |
加 |
表达式 + 表达式 |
左到右 |
双目运算符 |
- |
减 |
表达式 - 表达式 |
双目运算符 |
||
5 |
<< |
左移 |
变量 << 表达式 |
左到右 |
双目运算符 |
>> |
右移 |
变量 >> 表达式 |
双目运算符 |
||
6 |
> |
大于 |
表达式 > 表达式 |
左到右 |
双目运算符 |
>= |
大于等于 |
表达式 >= 表达式 |
双目运算符 |
||
< |
小于 |
表达式 < 表达式 |
双目运算符 |
||
<= |
小于等于 |
表达式 <= 表达式 |
双目运算符 |
||
7 |
== |
等于 |
表达式 == 表达式 |
左到右 |
双目运算符 |
!= |
不等于 |
表达式 != 表达式 |
双目运算符 |
||
8 |
& |
按位与 |
表达式 & 表达式 |
左到右 |
双目运算符 |
9 |
^ |
按位异或 |
表达式 ^ 表达式 |
左到右 |
双目运算符 |
10 |
| |
按位或 |
表达式 | 表达式 |
左到右 |
双目运算符 |
11 |
&& |
逻辑与 |
表达式 && 表达式 |
左到右 |
双目运算符 |
12 |
|| |
逻辑或 |
表达式 || 表达式 |
左到右 |
双目运算符 |
13 |
?: |
条件运算符 |
表达式1 ? 表达式2 : 表达式3 |
右到左 |
三目运算符 |
14 |
= |
赋值运算符 |
变量 = 表达式 |
右到左 |
|
/= |
除后赋值 |
变量 /= 表达式 |
|||
*= |
乘后赋值 |
变量 *= 表达式 |
|||
%= |
取模后赋值 |
变量 %= 表达式 |
|||
+= |
加后赋值 |
变量 += 表达式 |
|||
-= |
减后赋值 |
变量 -= 表达式 |
|||
<<= |
左移后赋值 |
变量 <<= 表达式 |
|||
>>= |
右移后赋值 |
变量 >>= 表达式 |
|||
&= |
按位与后赋值 |
变量 &= 表达式 |
|||
^= |
按位异或后赋值 |
变量 ^= 表达式 |
|||
|= |
按位或后赋值 |
变量 |= 表达式 |
|||
15 |
, |
逗号运算符 |
表达式,表达式,… |
左到右 |
从左向右顺序运算 |
能用来实现各种复杂的数据结构(如链表、树、栈等)的运算。
四、c语言可直接访问物理地址,能进行位(bit)操作
五、c语言词汇
在C语言中使用的词汇分为六类:标识符,关键字,运算符,分隔符,常量,注释符等。
1.标识符
在程序中使用的变量名、函数名、标号等统称为标识符。除库函数的函数名由系统定义外,其余都由用户自定义。
C 规定,标识符只能是字母( A~Z,a~z )、数字( 0~9 )、下划线( _ )组成的字符串,并且其第一个字符必须是字母或下划线。
以下标识符是合法的:a,x, 3x,BOOK 1,sum5
以下标识符是非法的:
3s 以数字开头
s*T 出现非法字符*
-3x 以减号开头
bowy-1 出现非法字符-(减号)
在使用标识符时还必须注意以下几点:
(1)标准C不限制标识符的长度,但它受各种版本的C 语言编译系统限制,同时也受到具体机器的限制。例如在某版本C 中规定标识符前八位有效,当两个标识符前八位相同
时,则被认为是同一个标识符。
(2)在标识符中,大小写是有区别的。例如BOOK和book 是两个不同的标识符。
(3)标识符虽然可由程序员随意定义,但标识符是用于标识某个量的符号。因此,命名应尽量有相应的意义,以便阅读理解,作到“顾名思义”。
2.关键字
关键字是由C语言规定的具有特定意义的字符串,通常也称为保留字。用户定义的标识符不应与关键字相同。
3.运算符
C语言中含有相当丰富的运算符。运算符与变量,函数一起组成表达式,表示各种运算功能。运算符由一个或多个字符组成。
4.分隔符
在C语言中采用的分隔符有逗号和空格两种。逗号主要用在类型说明和函数参数表中,分隔各个变量。空格多用于语句各单词之间,作间隔符。在关键字,标识符之间必 须要有一个以上的空格符作间隔, 否则将会出现语法错误,例如把int a;写成 inta;C编译器会把inta当成一个标识符处理,其结果必然出错。
5.常量
C 语言中使用的常量可分为数字常量、字符常量、字符串常量、符号常量、转义字符等多种。在第二章中将专门给予介绍。
6.注释符
C 语言的注释符是以“/*”开头并以“*/”结尾的串。
在“/*”和“*/”之间的即为注释。程序编译时,不对注释作任何处理。注释可出现在程序中的任何位置。注释用来向用户提示或解释程序的意义。在调试程序中对暂不使用的
语句也可用注释符括起来,使翻译跳过不作处理,待调试结束后再去掉注释符。
六、算法
1、
一个程序应包括算法两个方面
(1)对数据的描述。在程序中要指定数据的类型和数据的组织形式,即数据结构
(2)对操作的描述。即操作步骤,也就是算法
数据结构 + 算法 = 程序
实际上,一个完整的程序还需要采用结构化程序设计方法进行横须设计,并且用某一种计算机语言表示。因此,
算法、数据结构、程序设计方法、语言工具是一个程序员应具备的知识。
2、算法的特性
(1)有穷性
(2)确定性
(3)有零个或多个输入
(4)有一个或多个输出
(5)有效性
3、表示一个算法可用(1)自然语言(2)流程图(3)N-S流程图(4)伪代码(5)计算机语言
4、3种基本结构:(1)顺序结构(2)选择结构(3)循环结构(当型while,直到型until)
5、结构化程序设计方法(1)自顶向下 (2)逐步细化(3)模块化设计(4)结构化编码