目录
0. C语言
test.c —> 编译 —> 连接 —> text.exe
编译器:Clang, GCC, WIN-TC, MSVC, Turboc
C -- 编译器 ; python -- 解释器
.c -- 源文件 ; .h -- 头文件 ; c++ -- c plus plus
Ctrl + F5 运行 + F10 到下一行
main : 程序入口(有且仅有一个)(void 太老了)
int main()
{
return 0;
}
printf - 打印数据 - 库函数 ; stdio : standard input output
#include<stdio.h>
ANSIC
ASCII码一览表,ASCII码对照表 (biancheng.net)https://c.biancheng.net/c/ascii/
1. 数据类型
type | char | short | int | long | long long | float | double |
---|---|---|---|---|---|---|---|
byte | 1 | 2 | 4 | 4 | 8 | 4 | 8 |
bit | 8 | 16 | 32 | 32 | 64 | 32 | 64 |
bit -8- byte -1024- kb -1024- mb -1024- gb -1024- tb -1024- pb
比特位bit 字节byte
2. 变常量
%s 字符串 %d 整数十进制 %zu 无符号整形
extern 声明来自外部的符号 & 地址 arr[] 数组
scanf_s只有VS认识
VS第一行
#define _CRT_SECURE_NO_WARNINGS
3. 字符串
'字符常量' "字符串"
char arr[自动确认] \0 结束标志(不数,空格数)
格式 | 转义字符 | |||
%d | 整 | \n | 换行 | |
%c | 字符 | \0 | 停止 | |
%s | 字符串 | \? | 多?用(防止解析成三字母词) | |
%f | float | \' | 字符常量'("同,\") | |
%lf | double | \\ | \ | |
%zu | sizeof返回值 | \b | 退格 | |
\f | 进纸 | |||
\r | 回车 | |||
\a | 警告 | |||
\t | 水平制表 | |||
注释 | \v | 垂直制表 | ||
c | /* */(不可嵌套) | \ddd | ASCII三个八进制(0~127) | |
c++ | // | \xdd(\xddd) | ASCII两(三0dd)个十六进制 |
4. 语义字符
5. 注释
在线编程(OJ):Online Judge(IO型+接口型)
6. 选择语句
if ()//条件1
{
//满足条件1执行
}
else if ()//条件2,可无
{
//满足条件2执行,可无
}
else
{
//其他执行,{}里只有一句就可以不用{}
}
C语言是[结构化]的程序设计语言
三种可全概括:顺序语句+选择语句+循环语句
p.s.条件操作符有时可以代替条件语句
判断exp1真/假-->选择exp2/exp3执行
exp1 ? exp2 : exp3
exp1 | exp2 | exp3 |
---|---|---|
T | 执行 | / |
F | / | 执行 |
7. 循环语句
while, for, do... while
8. 函数
//返还类型 函数名(参数)
//{
// 函数体
//}
//e.g.1
int Add(int x, int y)
{
return int z = x + y;
}
//e.g.2
void Load_screen1(int x)
{
printf("%d\n", x);
}
//没有返回值的函数类型写void(空)
//函数名只能由数字、下划线、字母组成,数字不能打头
//函数名不能是关键字,如printf
9. 数组
定义数组时: arr[10]:十个 arr[]:自动识别几个
不能写arr[n],里面要用常数才行
数组编号是从0开始:例如int arr[10]={1,2,3,4,5,6,7,8,9,10}中
arr[0]=1 arr[6]=7
10. 操作符
算数、移位、位、赋值、比较(关系)、逻辑、条件、逗号(下标引用、函数调用、成员访问)
操作符 | 单目 | 二目 | 三目 |
---|---|---|---|
操作数 | 一个 | 两个 | 三个 |
举例1 | ~ | + | exp1 ? exp2 : exp3 |
举例2 | sizeof | || | 没有了就上面那个 |
算数:加+ 减- 乘* 除/ 余%
移位:左移<< 右移>>
位:与& 或| 异或^ 按位取反~
赋值:简单= 复合+= -= *= /=
e.g.1. a++指的是a=a+1 e.g.2 x+=3指的是x=x+3
比较(关系):大于> 小于< 等于== 不等于!=
逻辑:与&& 或|| 非!
条件(三元/三目):exp1 ? exp2 : exp3
逗号:逗号分隔,依次执行
下标引用:数组[]
函数调用:函数()
成员访问:点. 箭头->
单目:! - + & sizeof ~ -- ++ * (类型)