[toc]
# 基礎(chǔ)部分
## 編譯/執(zhí)行
main.c
```c
#include <stdio.h>
int main() {
printf("我的第一個程序,你好,%s \n", "打工人");
return 0;
}
```
編譯并運行 `gcc main.c && ./a.out`
gcc main.c 編譯
./a.out 運行編譯結(jié)果
## 文件操作
```c
char fname[] = "./lzsb.txt";
```
### 寫入文件
```c
char str[] = "你好,打工人"; // 欲寫入內(nèi)容
FILE* f = fopen(fname, "w"); // 打開文件
fwrite(str, sizeof(str), 1, f); // 寫入
fclose(f); // 關(guān)閉文件占用
```
### 讀取文件
```
FILE *f = fopen(fname, "r");
/* 取文件長度 START (適用2GB內(nèi)文件) */
fseek(f, 0, SEEK_END);
int size = ftell(f);
fseek(f, 0, SEEK_SET);
/* 取文件長度 END */
char buffer[size]; // 設(shè)置緩存區(qū)
fseek(f, 0, SEEK_SET);
fread(buffer, size, 1, f); // 緩存變量, 讀取長度, 元素個數(shù), 文件流
fclose(f);
printf("%s", buffer);
```
## bit和byte
> bit 比特位, 8bit = 1byte
計算機(jī)只能認(rèn)識二進(jìn)制,每個bit只能存放0或1, 所以`bit`是計算機(jī)能讀懂的最小單位
```
11111111 一個字節(jié),同時是8個bit(比特位)
01011011
```
```
比特位,bit, b
字節(jié),Byte, B
```

## 取值范圍

參考:[【C語言】《帶你學(xué)C帶你飛》\_嗶哩嗶哩\_bilibili](https://www.bilibili.com/video/BV17s411N78s?p=7)
## 基本數(shù)據(jù)類型

**數(shù)值類/字符數(shù)據(jù)類型長度**
|類型 | 長度 |
| ---|---|
|int |4|
|short int |2|
|long long int |8|
|char |1|
|_Bool |1|
|float |4|
|double |8|
|long double |16|
**signed 和 unsigned(無符號)**
- `signed` 帶符號數(shù)字,可以存負(fù)數(shù)
- `unsigned` 不帶符號數(shù)字,不允許負(fù)數(shù);只能存在`0`和非負(fù)數(shù),多出來的空間可以存更大的數(shù), 比`signed`翻一倍(似乎?)
> 最佳實踐:默認(rèn)情況所有整形都是`signed`,另外`printf`時無符號數(shù)字需要選對格式字符
```
[signed] int age = -100; // 可以是負(fù)數(shù)
unsigned int age = 100; // 不帶符號, 不能是負(fù)數(shù),最小為0
```
### 數(shù)據(jù)類型強(qiáng)制轉(zhuǎn)換
與php一樣
```
int i = 1 + (int)1.8; // 強(qiáng)制把1.8轉(zhuǎn)換整數(shù),舍棄小數(shù)點
```
## 常用函數(shù)
### printf
格式化文本輸出,全稱`print format`
```
printf("%s出生于%d年%d三月", "余小波", 1997, 3);
> 余小波出生于1997年3月
```
**格式字符**
- `%s` 用于替代字符串
- `%c` 用于替代一個字符
- `%d` 用于替代整數(shù)
- `%f` 用于替代小數(shù)
[更多參考](https://www.runoob.com/cprogramming/c-function-printf.html)
### sizeof
用于計算一個變量/常量/數(shù)據(jù)類型的占用長度
```shell
int age = 24;
sizeof(age)
> 4
```
- 前言
- Android
- 簽名證書生成
- JavaScript
- WebSocket 協(xié)議心跳
- 選擇預(yù)覽本地圖片(不上傳)
- Ajax 上傳文件
- 代碼片
- js 播放聲音
- Verify 驗證
- 驗證金額 / 限制保留兩位小數(shù)
- 原型鏈&繼承
- 經(jīng)典算法
- 冒泡排序
- 遞歸算法
- 二分查找
- 幫助函數(shù)
- 取URL查詢參數(shù)為對象
- Date 日期時間
- 淺拷貝與深拷貝
- 進(jìn)制轉(zhuǎn)換
- Canvas
- 畫圓形頭像
- 計算字符串寬度
- 常用第三方包
- XLSX
- Layui
- layer.open select 遮擋問題
- 模板中使用 JS 表達(dá)式
- Form 表單
- on 監(jiān)聽事件
- select 下拉選擇框
- 取表單數(shù)據(jù) / 置表單數(shù)據(jù)
- form.verify 表單驗證
- address 三級聯(lián)動
- Table 表格
- 動態(tài)添加表格行
- 設(shè)置行高
- 單元格顯示圖片
- 開啟編輯-阻止用戶修改
- 主動觸發(fā)事件
- 文件上傳
- 單圖上傳
- Vue
- Vue.js 代碼片
- 模態(tài)框/彈出層
- 單頁面電影院選座
- vuex
- WebSocket聊天模板
- 解決辦法
- vue-router多級路由中無父級組件設(shè)置方法
- Mui
- vue2+mui實現(xiàn)上拉刷新下拉加載
- JQuery
- 序列號表單為 JSON 對象
- Ajax 網(wǎng)絡(luò)請求
- 選擇器
- 插件
- selectpage
- HTML+CSS 布局
- Nodejs
- flex 布局
- 水平對齊方式
- 垂直對齊方式
- 九宮格/列表
- PHP
- gd 圖像處理
- 圖片寫字
- 圖片合并
- 圖像壓縮
- 圖片寫字居中
- 超全局變量
- helper 幫助函數(shù)
- ThinkPHP
- 生成用戶分享二維碼
- tp5.0 模型關(guān)聯(lián)查詢field無效
- Composer
- phpmailer
- 第三方接口
- 快遞 100 物流記錄
- 動態(tài)加載
- pdf解決方案
- 圖片轉(zhuǎn)換pdf
- 阿里云
- OSS 對象儲存
- 阿里短信
- 輔助函數(shù)
- 取兩個數(shù)組差異部分
- 從完整地址中取出省市區(qū)
- 釘釘
- 進(jìn)制轉(zhuǎn)換 & pack/unpack
- Yii2
- ActiveForm 常見問題
- FastAdmin
- layer的妙用
- \fast\Auth 權(quán)限
- 前端的各種常見問題
- 點擊圖片放大預(yù)覽
- js
- ajax請求
- 前端
- Table
- selectPage
- 后端
- 騰訊cos插件后臺上傳文件工具類
- XDebug
- php.ini
- Linux
- RabbitMQ
- 防火墻
- iptables
- firewalld
- 環(huán)境變量
- shell
- bash
- crontab 定時任務(wù)
- 數(shù)據(jù)歸檔與解壓縮
- tar
- 圖像處理
- imagemagick
- 文檔表格處理
- 轉(zhuǎn)換word、pdf等
- 常用命令
- 文件資源管理
- xxd 十六進(jìn)制編輯與查看
- 疑難雜癥
- 開啟swap虛擬文件系統(tǒng)緩解內(nèi)存緊張卡頓
- wine
- deepin-wine(qq/微信綜合)
- Python
- 代碼片
- bs4 解析 html 插入到數(shù)據(jù)庫
- webdriver 操作瀏覽器
- requests 請求庫
- easyxlsx 導(dǎo)出 excel
- opencv
- 提取印章
- orc圖片文字識別
- tesseract
- 進(jìn)制轉(zhuǎn)換
- WebSocket
- ws 服務(wù)示例
- 進(jìn)程守護(hù)
- PM2
- Golang
- net/http
- Server
- 基本
- array 數(shù)組
- 循環(huán)
- os 文件目錄基本操作
- map
- json處理
- Qrcode 二維碼
- go-sqlite3
- go-redis
- mysql
- go-sql-driver
- 正則表達(dá)式
- beego
- fmt
- io
- ioutil
- net
- http
- Docker
- docker run
- Nginx
- CORS 允許跨域配置
- 負(fù)載均衡&反向代理
- rewaite 重寫
- nginx配置
- 易語言
- 匯編 call 執(zhí)行子程序
- HpSocketTcp 大文件傳輸
- 類指針
- Vim
- UniApp
- request.js
- 微信小程序登錄處理(oauth2)
- vuex
- WebSocket聊天
- 騰訊云-人臉核身
- Java
- Spring Boot
- 請求與響應(yīng)
- nginx部署
- 配置文件
- 創(chuàng)建項目
- 控制器
- 一個控制器示例
- 數(shù)據(jù)庫
- MySQL
- 集成 SLF4J
- 集成 PageHelper 分頁
- maven
- Markdown
- mermaid
- ffmpeg
- 基本使用
- 介紹/安裝
- 簡單示例
- php
- python
- office
- excel
- 單元格選擇數(shù)據(jù)區(qū)域
- 截取字符串
- vlookup 選擇值
- iferror 錯誤默認(rèn)值
- search 搜索
- weekday 取星期幾
- left 取左邊n個字符
- right 取右邊n個字符
- sum 合計
- sumif 條件合計
- sumifs 多條件合計
- datedif 取時間間隔
- roundup 向上舍入數(shù)字
- rounddown 向下舍入數(shù)字
- large 取第n大值
- mod 求余函數(shù)
- word
- 郵件合并-保留兩位小數(shù)
- MySql
- 安裝
- 基礎(chǔ)操作
- 備份還原數(shù)據(jù)庫
- 創(chuàng)建、刪除、修改數(shù)據(jù)表
- 表結(jié)構(gòu)查詢
- Docker方案
- 慢查詢
- 全文搜索
- 備份與還原
- 備份數(shù)據(jù)表
- 支付
- 支付寶
- ssh證書生成
- 支付申請
- 成考
- 英語
- 音標(biāo)-掐頭法
- 音標(biāo)-去尾法
- 音標(biāo)-元音
- 對比法學(xué)習(xí)輔音發(fā)音
- 短元音-長元音
- 雙元音
- 數(shù)學(xué)
- 1.實數(shù)系
- 2.乘方
- 3.代數(shù)式
- 4.單項式多項式
- 5.整式的概念與方程綜合
- 6.合并同類項和移項
- 7.二次根式
- 8.方程
- Git
- WebHook
- 寶塔
- webhook工具實現(xiàn)
- commit 規(guī)范
- 安裝
- 創(chuàng)建
- 發(fā)布、提交
- 查看
- 更新
- 分支
- 找回文件、目錄
- Svn
- 設(shè)置默認(rèn)編輯器
- ignore 忽略提交目錄
- revert 恢復(fù)撤銷
- C語言
- 環(huán)境安裝
- 基礎(chǔ)部分
- 單片機(jī)
- ESP8266
- ESP8266開發(fā)環(huán)境安裝
- 基礎(chǔ)知識
- sim800
- Windows
- Win7
- Win10
- wsl (Linux子系統(tǒng))
- ArtTemplate
- 正則表達(dá)式
- 常用正則
- VsCode
- easy less
- 騰訊云
- 數(shù)據(jù)萬象
- 任務(wù)接口
- 音視頻轉(zhuǎn)碼任務(wù)
- 算法
- 寬高按比例縮放大小尺寸
- IOS
- 開發(fā)者賬號
- uniapp-ios打包上架的坑
- 協(xié)議模板
- 隱私協(xié)議
- 酸酸乳
- bower
- SQL Server
- 多行數(shù)據(jù)連接字符串
- GROUP BY選取其他字段
- 支付寶
- IoT小程序
- 支付
- RSA秘鑰生成
