目录
第一章 C语言入门
一、程序
⭐程序是让计算机执行某些操作或解决某个问题而编写的一系列有序指令的集合
⭐计算机能懂的语言是二进制,程序员能看懂的是编程语言
⭐计算机做的所有事情都是计算,计算的步骤就是算法
程序的执行
⭐解释:借助一个程序,由这个程序读懂程序员的代码,并按照要求执行
⭐编译:借助一个程序,将程序员所写的编程语言,翻译成机器语言,以供计算机直接执行
任何语言都可以解释或编译,解释和编译只是他们的执行方式
--- 解释型语言有特殊的计算能力
--- 编译型语言有确定的运算性能
二、C语言
⭐语言的能力和使用领域主要由库和传统所决定
⭐现代编程语言语法上的差异很小,几乎都是C-like
⭐C语言是编译型语言
⭐C程序通常运行在linux/unix操作系统下
1.C语言的几个常用版本
ANSI C【标准C】、C89、C99
所有当代编译器几乎都支持C99
ANSI:美国国家标准局
ISO:国际化标准组织
丹尼斯.里奇:C语言之父、UNIX之父【第四版Unix完全由c语言重新写的】
2.C语言的特点
代码级别的跨平台【可用于多种操作系统,适用于多种机型】
允许直接访问物理地址,对硬件进行操作,可用于编写系统软件
有结构化程序设计、有变量作用域以及递归功能的过程式语言
可以值传递,也可以指针传递
面向过程,没有对象,不同的变量类型可以用结构体(struct)组合在一起
预编译处理,代码质量高,执行效率高
3.IDE
⭐集成开发环境,用于开发软件的程序
4.C语言标准库
一组C内置函数、常量和头文件,可以作为C程序员的参考手册
math.h 各种数学函数和一个宏
stdio.h 定义了三个变量类型、一些宏和各种函数来执行输入和输出
stdlib.h……
三、c程序运行机制
编写 --- 编写.c源代码【放在项目文件夹里】
编译 --- .c源文件通过编译器,编译成.obj目标文件 【由cl.exe程序完成,放在项目文件夹的debug文件夹里】
链接 --- 在C程序中,会使用到部分C程序库的内容【头文件】,通过链接程序,将.obj目标文件和库文件【在程序中使用到的库文件,由系统提供】链接成.exe可执行文件【由link.exe程序完成,放在解决方案文件夹的debug文件夹里】
运行 --- 执行.exe可执行文件【二进制文件】,得出执行结果只编译链接不运行:
修改后的源文件,需要重新编译链接,才能生效,可以用“生成 -> 重新生成解决方案”
cl.exe和link.exe均在vs的bin目录下
四、c程序的主体结构
1.引入头文件
2.main函数,程序的执行入口,程序从main函数开始执行,大括号中的内容为main函数的函数体
#include<stdio.h>
void main() //void表示main函数没有返回值
{
printf("北\t上\t广\n");
printf("Hello\\ \"World!\'");
getchar();//使窗口停留
}
注意事项
⭐c语言严格区分大小写
⭐每条语句以分号结尾
⭐大括号“{}”成对出现,缺一不可
五、常用的转义字符
\t --- 表示一个制表位,tab
\n --- 表示换行输出
\\ --- 表示一个‘\’
\' --- 表示一个‘'’
\" --- 表示一个‘"’
\r --- 表示回车,光标回到开头,会覆盖之前输出的内容
六、注释(comment)
对程序进行说明解释的文字,注释的内容不会执行
//单行注释
/*
多行注释
*/
⭐块注释【多行注释】里不能嵌套块注释
注释快捷键 --- ctrl+k,ctrl+c;取消注释 --- ctrl+k,ctrl+u
七、c程序代码规范
1.注释风格:
--- 函数用块注释,语句用单行注释
2.正确的缩进和空白
--- tab向右移,shift + tab向左移
--- 运算符两边习惯各加一个空格
--- 代码格式化快捷键ctrl + k,ctrl + f
3.函数块的风格 --- 行尾风格 和 次行风格【同一个程序最好使用统一风格】
函数注释范例:
/*
函数名:xxx
参数:int n1,int n2
返回类型:xxx
功能:该函数用于xxx
作者:xxx
日期:xx年xx月xx日
*/
第二章 变量
#include<stdio.h>
void main()
{
int num = 1;
double score = 2.3;
char gender = 'A';
char name[] = "阿白";
/*
变量:程序的基本组成单位
--- 相当于内存中一个数据存储空间的表示,通过变量名可以访问到变量值
*/
printf("num = %d\t\tgender = %c\tscore = %.2f\tname = %s",num,gender,score,name);
/*
输入/输出整型 --- %d
输入/输出长整型 --- %ld
输入/输出小数 --- %.小数位数f
输入/输出字符 --- %c
输入/输出字符串 --- %s
*/
}
一、变量的定义
⭐程序的基本组成单位
⭐是内存中一个数据存储空间的表示,通过变量名可以访问到变量值
注意事项
⭐不同的数据类型,占用的空间大小不同
⭐变量必须先声明,后使用
⭐变量表示内存中一个存储区域,该区域有自己的名称【变量名】和类型【数据类型】,该数据可以在同一类型范围内不断变换【更改变量值】
⭐变量在同一个作用域内不能重名
⭐变量三要素:变量名 + 数据类型 + 值
二、输入/输出变量
输入/输出整型 --- %d
输入/输出长整型 --- %ld
输入/输出小数 --- %.小数位数f
输入/输出字符 --- %c
输入/输出字符串 --- %s
三、变量的数据类型
每一种数据都定义了明确的数据类型,在内存中分配了不同大小的内存空间【使用字节数】
⭐C数据类型分为:基本类型、构造类型、指针类型、空类型void
--- 基本类型包括:数值类型【整型[短整型short/整型int/长整型long/long long]、浮点型[单精度float/双精度double]】 和 字符类型[char]
--- 构造类型包括:数组、结构体struct、共用体union、枚举类型enum
--- 指针类型【存放地址】
--- void空类型
⭐在c中没有字符串类型,它使用字符数组来表示字符串
⭐各数据类型的存储大小与操作系统、系统位数和编译器有关,可以用sizeof()查看所占用字节数
1.整型
用于存放整数值
c语言的整型分为 有符号 和 无符号 两种,默认是signed【有符号】
int/signed int --- 带符号+/-的整数,字节数为2/4字节,范围(-2^(2*8-1)~2^(2*8-1)-1)【1byte = 8bits,带符号减1位,所示范围为两字节的】
unsigned int --- 不带符号-的整数,字节数为2/4字节,范围(0~2^(2*8)-1)
bit(位)计算机中最小存储单位;byte(字节)计算机中基本存储单位【1 byte = 8 bit】
2.浮点型
用于存放小数
float单精度 --- 4字节 --- 1.2E-38 ~ 3.4E+38 --- 6位小数
double双精度 --- 8字节 --- 2.3E-308 ~ 1.7E+308 --- 15位小数
⭐浮点数在机器中的存放形式:浮点数 = 符号位 + 指数位 + 尾数位
⭐浮点数是近似值,尾数可能由于丢失,而造成精度损失
⭐浮点型默认为dou