1.什么是C语言?
C语言是一门计算机语言,计算机语言是人和计算机交流的语言(C/C++/JAVA/python)
计算机语言的发展
早期的计算机语言叫做二进制语言,早期电脑硬件通过电 - 正电1/负电0。
- 10001110000 - ADD - 助记符 - 汇编语言 (低级语言)
- B语言
- C语言 C++ —— 高级语言(高级语言)
C语言通过了国际标准:ANSIC - 89年推出 - C89 / C90
C99 / C11并不流行 所以很多编译器不支持
第一个C语言程序
- 创建工程
- .C文件:源文件 .h文件:头文件(一般放在文件头部,被称为头文件)
- 可以开始啦
#define _CRT_SECURE_NO_WARNINGS 1
//包含一个 stdio.h 的文件,库函数包含在里面
//std:standard - 标准 / i - input / o - output
#include <stdio.h>
int main() //mian() - 主函数 - 程序的入口且有且只有一个
//int:整型的意思,main前面的int表示main函数返回一个整型值
{
//printf - print:打印 / f:function - 打印函数
//printf - 库函数(C语言本身提供的函数 - 别人的函数 - #include(#:指令形式 / include:包含))
printf("hehe\n");
return 0;
}
2.数据类型
向内存申请空间
- char:字符型 - 1
int main()
{
char ch = 'A'; //向内存申请一块空间
printf("%c\n",ch);//%c - 打印字符格式的数据
return 0;
}
- short(short int):短整型 - 2
- long:长整型 - 4 / 8,C语言标准规定,sizeof(long) >= sizeof(int)都可以,所以取决于编译平台。
int main()
{
long num = 1000;
printf("%d\n", num);
return 0;
}
- int:整型 - 4
int main()
{
int age = 20;
printf("%d\n", age); //%d - 打印整型十进制数据
return 0;
}
- long long:C99中的更长整型 - 8
- float:单精度浮点型 - 4
int main()
{
float num = 7.8;
printf("%f\n", num);//7.800000
return 0;
}
- double:双精度浮点型 - 8
int main()
{
double num = 7.8;
printf("%lf\n", num);//%lf:打印双精度浮点数 - 7.800000
return 0;
}
计算机中的单位
计算机是个硬件,即是通电的。正电1 - 负电0
- bit 计算机中最小的单位,只能存放1 / 0,一个二进制位
- byte 1byte = 8bit
- kb 1kb = 1024byte
- mb 1mb = 1024kb
- gb 1gb = 1024gb
- tb 1tb = 1024gb
- pb 1pb = 1024tb
3.变量、常量
变量的分类
- 局部变量
定义在代码块内部的变量。 - 全局变量
定义在代码块之外的变量。
局部变量和全局变量命名建议不要相同,当局部变量和全局变量的名字相同的时候。局部变量优先。
int main()
{
int a = 1;
int b = 2;
int sum = 0;
//输入函数
scanf("%d%d", &a, &b); //&:取地址符号,把地址取出来,把值定位在某个地址处
//C语言规定 变量要定义在当前代码块的最前面
sum = a + b;
printf("sum =%d\n", sum);
return 0;
}
常量
C语言中常见的常量分为三类:
- 字面常量: 直接的值
- const修饰的常变量
本质上还是一个变量,但拥有了常属性
int main()
{
//const 修饰的常变量
const int num = 4;
printf("%d", num);
num = 8;
printf("%d", num); //报错
return 0;
}
int main()
{
const int n = 10; //n是变量,但又有常属性,所以我们说n是常变量,在要使用常量的地方无法使用,但可以用来固定某个值
int arr[n] = { 0 };
return 0;
}
- #define定义的标识符常量
//#define 定义的标识符常量
#define MAX 10
int main()
{
int arr[MAX] = { 0 };
printf("%d\n", MAX); // 10
return 0;
}
- 枚举常量(enum):一一列举
比如 性别、三原色、星期
enum Sex
{
// 以下三个值为枚举常量
MALE,
FEMALE,
SECRET
};
int main()
{
enum Sex s = MALE;
printf("%d\n", MALE); //0
printf("%d\n", FEMALE); //1
printf("%d\n", SECRET); //2
return 0;
}
4.不安全函数
- scanf
- strcpy
- strlen
- strcat
- …
使用不安全函数的时候在源文件开头使用#define _CRT_SECURE_NO_WARNINGS 1
#define _CRT_SECURE_NO_WARNINGS 1
但如果使用其他编译器提供的安全函数会导致代码的跨平台性和可移植性受到影响。
字符串 转义字符 注释
字符串
字符串的结束标志是"\0"的转义字符,在计算字符串长度的时候 ‘\0’ 是结束标志,不算做字符串内容。
“abc” ---- ‘a’ ‘b’ ‘c’ ‘\0’
ASCII编码
数据在计算机上存储的时候 是2进制,不同的符号代表不同的十进制值,‘\0’ 代表0
int main()
{
char arr1[] = "abc";
char arr2[] = { 'a','b','c' };
//strlen - string length
printf("%d\n", strlen(arr1)); //3 遇见\0 认为结束,并没有将\0统计进去
// { 'a','b','c' } 没有 \0 所以无法停止,直到随机遇到一个\0才停止
printf("%s\n", strlen(arr2)); //15
return 0;
}
转义字符
把原来普通字符的意思转义一下,遇事不决就百度吧,累了。。。
专业字符表康康吧https://blog.csdn.net/a746742897/article/details/77543029
注释
ctrl+K+c:注释
CTRL+u:取消注释
数组
一组相同类型元素的集合,通过下标使用
- 定义:
int arr[10] = {1,2.3,4,5,6,7,8,9,0};
int arr[10] //定义一个存放10个整数数字的数组
char ch[2] //定义一个整型数组
float arr2[12] //定义一个浮点型数组
操作符
- 算术操作符:+ - * / %
- 移位操作符:左移操作符<< 右移操作符>>