C语言学习笔记-2(资料:郝斌老师C语言视频14~30)
0 C语言编程预备知识
1 CPU 内存条 硬盘 显卡 主板 显示器关系
例子:电影文件存放在硬盘上,鼠标点击播放时,操作系统将硬盘上的数据调入内存条中,Cpu处理内存条中的数据,图像数据发送给显卡,然后通过显示器显示出来;主板提供了一个框架,让CPU、内存条、显卡等联系起来。
2 程序运行
编译和连接后生成一个exe程序,程序exe由系统CPU运行。
3 数据类型
1 基本类型数据
整数
- 整型 —— int ——4Byte
- 短整型 —— short int ——2Byte
- 长整型 —— long int ——8Byte
浮点数
- 单精度浮点数 —— float ——4Byte
- 双精度浮点数 —— double ——8Byte
- 字符 —— char ——1Byte
2 复合类型数据
- 结构体
- 枚举
- 共用体
注释:共用体现在基本不用
4 变量
变量是一种容器,变量的本质就是内存中的一段存储空间
5 变量初始化
初始化就是赋值;变量分配到的存储空间中有其它值,需要初始化(赋值),来达到使用的要求;VC++6.0为了提醒没有初始化,对没有初始化的变量赋值一个特别异常的值,达到提醒的作用。
6 变量的定义
- 形式:
数据类型 变量名 = 要赋的值; - 等价于:
数据类型 变量名;
变量名 = 要赋的值;例子:
int i = 3;
等价于:
int i; i = 3;
7 进制
- 十进制:逢十进一
- 二进制:逢二进一
- 八进制:逢八进一
- 十六进制:逢十六进一
8 常量在C语言中的表示
整数
- 十进制: 传统的写法
- 十六进制: 前面加0x或0X(阿拉伯数字0)
- 八进制: 前面加0 (阿拉伯数字0)
浮点数
- 传统的写法
float x = 3.2;
- 科学计数法
float x = 3.2e3;
(x的值:3200)
float x = 123.45e-2;
(x的值:1.2345)
字符
- 单个字符用单引号括起来: ‘A’
- 字符串用双引号括起来: “AB”
注释:"A"也是正确的,表示’A’和’\0’的组合
9 常量在计算机存储的二进制代码形式
- 整数是以补码的形式转化为二进制代码存储在计算机中的
- 实数是以IEEE754标准转化为二进制代码存储在计算机中的
- 字符的本质实际也是与整数的存储方式相同
- 字符通过ASCII与整数对应,再进行转化
10 代码规范化
整齐
- 像括号这一类符号需要成对敲。
- 缩进,地位相等不缩进;属于某一个代码内部的代码需要缩进。
- 换行在代码之间功能不同的时候需要换行(空一行)。
常见程序结构
# include <stdio.h>
int main(void)
{
//定义变量
//对变量进行操作
//输出值
return 0;
}
11 字节
字节就是存储数据的单位,并且是硬件所能访问的最小单位。(位通过位运算符控制)一个字节=8位1K = 1024字节1M = 1024K1G = 1024M
12 不同类型数据之间相互赋值
暂不考虑
13 什么是ASCII
- ASCII不是一个值,而是一种规定;ASCII规定了不同的字符是使用哪个整数值去表示。
例如:
‘A’ ——65
‘B’——66
‘a’ ——97
’b’ ——98
‘0’ ——48
.# include <stdio.h>
int main(void)
{
char ch = 'A'; // char ch = 'B';
printf("%c\n",ch);
return 0;
}
.# include <stdio.h>
int main(void)
{
char ch = 'A';// char ch = 'B';
printf("%d\n",ch);
return 0;
}
14 字符的存储(本质上与整数的存储方式相同)
一元二次方程的求解
# include <stdio.h>
# include <math.h>
int main(void)
{
//
int a = 1;
int b = 2;
int c = 3;
float delta; //delta is b*b - 4*a*c
float x1;
float x2;
delta = b*b - 4*a*c;
if (delta > 0)
{
x1 = (-b + sqrt(delta)) / (2*a);
x2 = (-b - sqrt(delta)) / (2*a);
printf("two answer, x1 = %f, x2 = %f\n", x1, x2);
}
else if (delta == 0)
{
x1 = -b / (2*a);
x2 = x1;
printf("one answer, x1 = %f, x2 = %f\n", x1 ,x2);
}
else
{
printf("no answer \n");
}
}