1 C语言概述
1.1 什么是C语言
语言是人和人交流,C语言是人和机器交流。
1.2 为什么要学习C语言
1.2.1 C语言特点
优点:代码量小、执行速度快、功能强大、编辑自由
缺点:写代码实现周期长、可移植性较差、过于自由,经验不足易出错、平台库依赖较多
1.2.3 C语言应用领域
1)C语言可以写网站后台程序
2)C语言可以专门针对某个主题写出功能强大的程序库
3)C语言可以写出大型游戏的引擎
4)C语言可以写出另一个语言来
5)C语言可以写操作系统和程序驱动,并且只能用C语言来编写
6)任何设备只要配置了微处理器,就都支持C语言,从微波炉到手机,都是由C语言技术来推动的
1.3 第一个C语言程序:HelloWorld
1.3.1 编写C语言代码:hello.c
//导入一个文件 stdio.h std 标准库 i input o output 标准输入输出库 .h头文件
//<>导入系统文件 ""导入自定义文件
#include<stdio.h>
//int 数据类型 整型,如果出现在函数中表示函数的返回值
//main 程序的主函数 程序有且只有一个主函数,()里表示函数的参数 函数的参数可以有多个 中间由 , 分隔
init main()
{
//{} 函数体 代码体 程序体
//printf 是stdio.h中系统提供的函数,表示在标准输入输出设备上打印字符串
//"" 字符串 ; 一条语句的结束
print("hello world");
//return 如果出现在其他函数中表示函数结束,如果出现在main函数中表示程序结束
//0 函数的返回值,要和函数返回值类型对应
return 0;
}
//行注释,注释一行
/*
块注释,注释多行,注释内容不参与程序编译
*/
C语言的源代码文件是一个普通的文本文件,但扩展名必须是.c。
1.4 system函数
#include<stdib.h>
int system(const char *command);
功能:在已经运行的程序中执行另外一个外部程序
如果带路径 \ 或 /
参数:外部可执行程序名字
返回值: 成功 0;失败 任意数字
#include <stdlib.h>
#include <stdio.h>
int main(void)
{
//cmd命令 calc计算器 notepad记事本 mspaint画图板
//system("D:\\Desktop\\FeiQ.exe");
int value;
value = system("calc");
//%d是一个占位符,表示输出一个整型数据
printf("%d\n", value);
return 0;
}
1.5 C语言编译过程
1.5.1 C语言编译步骤
C代码编译可执行程序经过4步:
1)预处理:宏定义展开、头文件展开、条件编译等。同时将代码中的注释删除,这里并不会检查语法
2)编译:检查语法,将预处理后文件编译生成汇编文件
3)汇编:将汇编文件生成目标文件(二进制文件)
4)链接:C语言写的程序是需要依赖各种库的,所以编译之后还需要把库链接到最终的可执行程序中去
2 数据变量
2.1 变量与常量
2.1.1 关键字
C的关键字总共有32个
- 数据类型关键字(12个)
char,short,int,long,float,double,unsigned,signed,struct,union,enum,void - 控制语句关键字(12个)
if,else,switch,case,default,for,do,while,break,continue,goto,return - 存储类关键字(5个)
auto,extern,register,static,const - 其他关键字(3个)
sizeof,typedef,volatie
2.1.2 数据类型
数据类型的作用:编译器预算对象(变量)分配的内存空间大小。
2.1.3 4 常量 变量
常量:在程序运行过程中,其值不能发生改变的量
定义常量:
1)const 数据类型 常量名 = 值;(不安全)
2)宏定义常量:#define 常量名 值(无= 无;)
变量:在程序运行过程中,其值可以发生改变的量;变量在使用前必须先定义,定义变量前必须有相应的数据类型
数据类型 标识符 = 值;
标识符命名规则:
标识符不能使关键字;只能由字母、数字、下划线组成;第一个字母必须是字母或下划线 不允许数字开头;标识符中字母区分大小写;见名知义 驼峰式命名 RoleLv role_lv
在定义局部变量可以在数据类型前加修饰suto,也可以不加 加不加无影响,一般不加
int ___ = 123; 无命名含义
float 1_abc_123 = 1;对
float ABC = a;一个变量赋值给另外一个变量,上面内容会影响下面操作
int Int =123;可以 Int区分大小写,不是关键字
快速复制:复制到下/上一行 Alt+Shift+下/上键;
#include<stdio.h>
//宏定义常量
#define PI 3.14159
//圆的面积和周长 s=pi*r*r l=2*pi*r
int main02(void)
{
//常量 PI,const修饰
//const float pi = 3.14159;
float r = 2;
float s = PI * r * r;
float l = 2 * PI * r;
//占位符 %d整型 %f浮点型,默认保留六位小数,会四舍五入
printf("圆的面积:%.2f\n",s);
printf("圆的周长:%.2f\n",l);
return 0;
}
声明和定义的区别:
- 声明变量不需要建立存储空间,如:extern int a;
- 定义变量需要建立存储空间,如:int b;
从广义的角度来讲声明中包含着定义,即定义是声明的一个特例,所以并非所有的声明都是定义: - int b; 它既是声明,同时又是定义
- 对于extern b; 来讲它只是声明不是定义
一般情况下,把建立存储空间的声明称之为“定义”,而把不需要加你存储空间的声明称之为“声明”。
2.2 整型:int
2.2.1 整型变量的定义和输出
#include<stdio.h>
int main03(void)
{
//有符号 signed(可以省略)
//int a = -10;
//printd("%d\n", a);
//无符号unsigned(不可省略,后面只能定义整数 负数会乱码)
unsigned int a