C语言入门基础
一、计算机组成
计算机由硬件系统和软件系统所组成
- 硬件系统由 运算器、控制器、存储器、输入设备、输出设备5大部件组成
2.外存:读取写入速度慢,容量大,永久存储
3内存连续读取速度
DDR4内存大概是60GB/s的水平
SATA ssd大概是450MB/s的水平
机械硬盘大概是100~150MB/s的水平
计算机语言发展:机器语言、汇编语言、高级语言
二、C语言编译过程
1.预处理:宏定义/头文件展开、条件编译、删除注释
2.编译:将预处理后的文件编译成汇编文件
3.汇编:汇编文件------>二进制文件
4.链接:将库链接到可执行程序中
三、C程序的注释
C语言中有两种注释方式,分别为:
单行注释
以 //开始、以换行符结束的单行注释:
1 //这是单行注释
多行注释
以 /* 开始 以 */结束:
/ *
这是第一行注释
这是第二行注释
*/
错误案例: /* 会去匹配最近的 */,这就导致如下下代码编译错误:
/ *这里想通过这个多行注释把所有代码全部注释掉
int main()
{
/ *
这是第一行注释
这是第二行注释
*/
printf(“我是一条被注释的可执行语句_”);
return 0;
}
/
解决办法: 使用#if 0 和#endif
#if 0
//这里想通过这个多行注释把所有代码全部注释掉
int main()
{
/
这是第一行注释
这是第二行注释
*/
printf(“我是一条被注释的可执行语句_”);
return 0;
}
#endif
四、变量和常量
1.标识符使用规则
1.1 标识符只能包含 数字、字母以及下划线。
1.2 标识符不能以数字开头。
1.3 标识符区分大小写
2.关键字(32个)
2.1数据类型关键字(12个):char、short、int、long、float、double、unsigned、signed、struct、union、 enum、void
2.2控制语句关键字(12个):if、else、switch、case、default、for、do、while、break、continue、goto、 return
2.3存储类关键字(5个):auto、extern、register、static、const
2.4其他关键字(3个):sizeof、typedef、volatile
3.数据类型
3.1基本类型:
3.1.1 整型:int、short、long
3.1.2 字符型:char
3.1.3 浮点型:float、double
3.2构造类型
3.2.1 数组类型 [ ]
3.2.2 结构类型 struct
3.3.3 联合类型 union
3.3.4 枚举类型 enum
3.3 指针类型
(char *、int *、long *…)
4.常量 :程序运行过程中不能被修改的量
5.变量:程序运行过程中能被修改的量:
int a=0;
a=10;
printf("a=%d",a);
5.1语法:C语言变量要使用必须先声明
int i, j, k;
char c, ch;
float f, salary;
double d;
6.整形:
长度:
short(短整型) 长度:2字节
int(整形) 长度:4字节
long(长整型) 长度:8字节(64位)4字节(32位)
long long(长长整型)长度:8字节
格式: int a=2;
输出:6.2打印格式
计算长度函数:sizeof()
小细节:1Byte = 8bits
6.1有符号数和无符号数
有符号数:short/signed short(系统默认short就是有符号数)int/singed int...
无符号数:unsigned short、unsigned int ...
6.2打印格式
%hd 输出short类型
%d 输出int类型
%ld 输出long类型
%lld 输出long long类型
%hu 输出unsigned short类型
%u 输出unsigned int类型
%lu 输出unsigned long类型
%llu 输出unsigned long long类型
7.字符型(char)
长度:1字节
格式:用 ' ' (英文单引号)引用 char ch='A';
输出:%c
#include <stdio.h>
int main()
{
char ch = 'A';
printf("char: %c\n", ch);
return 0;
}
7.1 ASCII码:
A---Z ---> 65---90
a---z ---> 97---122
7.2 大小写转换
7.2.1 大写转小写: +32
int main()
{
char ch1 = 'A',ch2;
ch2=ch1+32
printf("char: %c\n", ch2); //输出 a
return 0;
}
7.2.2 小写转大写:-32
int main()
{
char ch1 = 'a',ch2;
ch2=ch1-32
printf("char: %c\n", ch2); //输出 A
return 0;
}
7.3 转义字符
\n 换行(LF) ,将当前位置移到下一行开头
\r 回车(CR) ,将当前位置移到本行开头
\t 水平制表(HT) (跳到下一个TAB位置)
\\ 代表一个反斜线字符""
\' 代表一个单引号(撇号)字符
\" 代表一个双引号字符
\0 数字0 字符串结束标记
8.浮点型(float、double) :可以带有小数
长度:4字节
格式:float a = 26.095;
输出:%f %lf
int main()
{
float a = 26.095;
printf("a = %f\n",a);
if(a == 26.095)
{
printf("a == 26.095\n");
}
else
{
printf("a != 26.095\n");
}
} (输出结果 a=26.0949999....,只是无限接近26.095)
总结
1.计算机由CPU(计算器、控制器)、存储器、输入设备、输出设备组成
2.计算机语言发展:机器语言、汇编语言、高级语言
3.程序文件编译过程:
3.1 预处理:宏定义、头文件展开、条件编译、删除注释
3.2 编译:编译成汇编语言文件
3.3.汇编:将汇编语言生成目标程序(二进制文件)
3.4 链接:链接程序中用到的库文件
4.单行注释:
//注释一行,多行注释/**/注释代码块。多行注释不能嵌套,解决嵌套问题使用条件编译#if#endif语句
5.标识符包括关键字,标识符规则:
5.1 只能包含数字、字母和下划线
5.2 不能以数字开头
5.3 区分大小写
6.总结来说常量分为值常量:包括整形、字符型、字符串等。和常型变量:使用const修饰的变量
7.使用变量要先定义,尽量用英文表示,做到见名知其意,不能用关键字
8.字符型数据的本质是解析成ASCII码的数字
9.浮点型数据不能使用等号判断,要使用范围判断
10.进制的不同就是每个位的位权的不同
11.数值在计算机系统中都是以补码形式存储的