课堂笔记
1.C语言的起源和发展
机器语言->汇编语言->高级语言
2.C语言的特点
优点
- 1.代码量小
- 2.速度快
- 3.功能强大(Windows Unix Linux三大系统都是用c语言为基础)
缺点
- 1.危险性高
- 2.开发周期长
- 3.可移植性不强
3.C语言的应用领域
系统软件开发
- 操作系统:Windows Linux Unix
- 驱动程序:主动驱动,显卡驱动,摄像头驱动
- 数据库:DB2、Oracle、Sql sever(Oracle数据库本身就是由C语言编写
应用软件开发- 办公软件:WPS
- 图形图像多媒体:ACDSee Photoshop MediaPlayer
- 嵌入软件开发: 智能手机、掌上电脑
- 游戏开发:2D、3D游戏
4.怎样学习C语言
- 看懂程序,调试程序
- 多思考,多上机 目标:能看懂程序,能调试程序,自学能力要强
5.常见问题答疑
1.学Java为什么要先建议学C
- Java继承了C语言的语法知识,学好C中的指针有助于理解Java中的引用
2.英语和数学不好能不能学会C语言
- 英语学得好有助于C语言的学习,但是不会影响C语言的学习
C语言组成(32个关键字)
1 数据类型关键字(12个):
(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开关语句
- 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:说明变量在程序执行中可被隐含地改变
5 C语言中的9中控制语句
goto语句:无条件转向;
if语句:判断语句;
while循环语句;
do-while语句:先执行循环体,然后判断循环条件是否成立. 之后继续循环;
for语句:循环,可替代while语句;
break语句跳出本层的循环;(只跳出包含此语句的循环)
continue语句:继续(一般放到循环语句里,不在执行它下面的语句,直接跳到判断语句例
for语句,就直接跳到第二个分号处;
while语句,就直接跳到while()的括号里;
switch语句:多相选择;
return语句:返回;
代码操作笔记
Hello world 代码操作
#include <stdio.h>
int main(void)
{
printf("Hello world!\n");
return 0;
}
运行成功
C语言的死机代码
# include <stdio.h>
# include <malloc.h>
int main(void)
{
while (1)
{
int *p = (int *)malloc(1000);
}
return 0;
}
malloc()中的数字代表死机时间的长短,数值越大距离开始死机的时间就越短,数值越小距离开始死机的时间就越长(注意malloc工具存在于malloc.h中)
一元二次方程
# include <stdio.h>
# include <math.h>
int main(void)
{
int a = 1;
int b = 2;
int c = 3;
double delta;
double x1;
double x2;
delta = b*b - 4*a*c;
if (delta > 0)
{
x1 = (-b + sqrt(delta)) / (2*a);
x2 = (-b - sqrt(delta)) / (2*a);
printf("该一元二次方程有两个解, x1 = %f, x2 = %f\n", x1, x2);
}
else if (delta == 0)
{
x1 = (-b) / (2*a);
x2 = x1;
printf("该一元二次方程有一个唯一解, x1 = x2 = %f\n", x1, x2);
}
else
{
printf("无解\n");
}
}
运行成功
此代码中的注意事项
- C语言里的乘号表示为 * 。eg:b的平方=b*b
- C语言里的根号表示为 sqrt()。 eg;根号b=sqrt(b)【注意sqrt工具包含在math.h中】
- 当a=b时,其表示的是b赋给a值(右边赋给左边值)
- 代码中的=不代表等于,代表赋值