2023年C语言精简笔记.pdf
《2023年C语言精简笔记.pdf》由会员分享,可在线阅读,更多相关《2023年C语言精简笔记.pdf(44页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C语 言 1、概 述 C 语 言 的 数 据 类 型 有:整 型(int)、实 型(float).字 符 型(char)、数 组 类 型(int)、指 针 类 型(v oid*)、结 构 体 类 型(st rue t)、共 用 体 类 型(uni on)等 C 语 言 允 许 直 接 访 问 物 理 地 址,可 以 直 接 对 硬 件 进 行 操 作,可 以 像 汇 编 语 言 同 样 对 位(bi t)、字 节 和 地 址 进 行 操 作 项 目 语 法 基 本 数 据 类 型 int、float、double、char(没 有 boolean类 型)基 本 语 句 循 环 语 句(do-w
2、hile、while for)、条 件 语 句(if、if-else switch)、got。语 句、空 语 句 注 释/*/和/日 志 输 出 printf(Hello,World!zz);printf(My age is 为 d,27);2、第 一 个 函 数 分 析#in clu d e in t m ain()p r in t f(H ello,World!nH);re tu rn 0;?#include是 C 语 言 的 预 解 决 指 令 之 一,所 谓 预 解 决,就 是 在 编 译 之 前 做 的 解 决,预 解 决 指 令 一 般 以#开 头#include 指 令 后 面
3、会 跟 着 一 个 文 献 名,预 解 决 器 发 现 include指 令 后,就 会 根 据 文 献 名 去 查 找 文 献,并 把 这 个 文 献 的 内 容 包 含 到 当 前 文 献 中。被 包 含 文 献 中 的 文 本 将 替 换 源 文 献 中 的 4 include指 令,就 像 你 把 被 包 含 文 献 中 的 所 有 内 容 拷 贝 到 这 个#include指 令 所 在 的 位 置 同 样 一 个 C 程 序 中 一 定 会 有 一 个 main函 数,也 只 能 有 一 个 main函 数。main函 数 是 整 个 C 程 序 的 入 口。1.在 编 译 前 先
4、 执 行#i n c 1 u d e 指 令,拷 贝 s t d i o.h 的 内 容 到 源 程 序 中 2.编 译 源 程 序,生 成 目 的 文 献 3.链 接 C 语 言 函 数 库,生 成 可 执 行 文 献 4.运 营 可 执 行 文 献,在 屏 幕 上 输 出 H e l l o,W o r ld!3、函 数 C 语 言 的 函 数 可 以 大 约 分 为 3 类:1.主 函 数,也 就 是 m a i n 函 数。每 个 程 序 中 只 能 有 一 个、也 必 须 有 一 个 主 函 数。2.2.开 发 人 员 自 定 义 的 函 数,可 有 可 无,数 目 不 限 3.3.
5、C 语 言 提 供 的 库 函 数 在 标 准 C语 言 中,函 数 的 定 义 顺 序 是 有 讲 究 的,默 认 情 况 下,只 有 后 面 定 义 的 函 数 才 可 以 调 用 前 面 定 义 过 的 函 数 int sum(int a,int b)return a+b;int main。(int c=sum(l,4);return 0;)假 如 调 换 下 s u m 函 数 和 m a in 的 顺 序,在 标 准 的 C 编 译 器 环 境 下 是 不 合 法 的 假 如 想 把 其 他 函 数 的 定 义 写 在 m ain函 数 后 面,并 且 m ain函 数 能 正 常
6、调 用 这 些 函 数,那就 必 须 在 ma i n 函 数 前 面 作 一 下 函 数 的 声 明/只 是 做 个 函 数 声 明,并 不 用 实 现 inr sum(inc a,int b);int main(int c sum(lr 4);return 0;/弹 始 症 义(实 现)int sumfint a,int b)return a+b;)可 以 省 略 参 数 名 称,如 S t sum(int,i n t);在 大 型 的 C 程 序 中,为 了 分 模 块 进 行 开 发,一 般 会 将 函 数 的 声 明 和 定 义(即 实 现)分 别 放 在 2 个 文 献 中,函 数
7、 声 明 放 在.h 头 文 献 中,函 数 定 义 放 在.c源 文 献 中 运 营 环 节 分 析:1 在 编 译 之 前,预 编 译 器 会 将 s u m.h文 献 中 的 内 容 拷 贝 到 ma i n.c 中 2 接 着 编 译 m ain,c 和 s um.c 两 个 源 文 献,生 成 目 的 文 献 m a i n.o b j 和 sum.0 b j,这 2 个 文 献 是 不 能 被 单 独 执 行 的,因 素 很 简 朴:*s u m.o b j中 不 存 在 m a in函 数,肯 定 不 可 以 被 执 行*m a i n.o b j中 虽 然 有 m a i n
8、函 数,但 是 它 在 m a i n 函 数 中 调 用 了 一 个 su m函 数,而 s u m 函 数 的 定 义 却 存 在 于 s u m.o b j中,因 此 m ai n.o b j依 赖 于 sum.obj3 把 m a in.o b j、s um.o b j链 接 在 一 起,生 成 可 执 行 文 献 4 运 营 程 序 在 定 义 函 数 时,函 数 名 后 面 的()中 定 义 的 变 量 称 为 形 式 参 数(形 参);在 调 用 函 数 时 传 入 的 值 称 为 实 际 参 数(实 参)。4、p r i n t f 函 数 scanf 函 数 i n t ag
9、e=17;i n t age;p rin tf(M y age i s%df a g e);sc a n f C,%dwr&age);s c a n f(n%d%d%d,ar&c);3 个 舍 d 之 间 是 用 空 格 隔 开 的,我 们 在 每 输 入 个 整 数 后 必 须 输 入 一 个 分 隔 符,分 隔 符 可 以 是 空 格、t a b、回 乍格 式 符 I5、基 本 数 据 类 型 数 组 sfruct结 构 体 union共 用 体 enum枚 举 irtvoid*整 型 指 针 类 型 基 本 数 据 类 型 浮 点 型 float单 精 度 浮 点 型 double双 精
10、 度 浮 点 型 char构 造 类 型 C 语 言 数 据 类 型 字 符 型 void空 类 型 在 J a v a中,你 声 明 了 个 局 部 变 量 后,假 如 没 有 通 过 初 始 化 赋 值 就 使 用 该 变 量,编 译 器 直 接 报 错 在 C 语 言 中,你 声 明 看 一 个 局 部 变 量 后,没 有 通 过 初 始 化 赋 值 是 可 以 使 用 的 int main()(inr b;printf(%d b);但 这 是 很 危 险 的,不 建 议 这 样 做,b 也 许 会 是 任 意 大 整 数 return 0;假 如 是 全 局 的 int类 型 变 量,
11、系 统 会 默 认 赋 值 为 0c h a r的 取 值 范 围 是:A SC II码 字 符 或 者-1 281 2 7 的 整 数 方 式 1char c=A,;下 面 的 写 法 都 是 错 误 的:/方 式 2char cl=我,;char c=65;char c2=123;char c3=123”;有 以 下 4 种 类 型 修 饰 符:s h o r t 短 型 lo n g 长 型 s ig n e d 有 符 号 型 u n s i g n e d 无 符 号 型 红 色 的 代 表 常 用 的 数 据 类 型 116位 编 译 器 32位 编 译 器 64位 编 译 器 j
12、char 1 1 1void*(指 针 变 量)2 4 8short int 2 2 2unsigned int 2 4 4int 2 4 4float 4 4 4double 8 8 8long 4 4 8unsigned long 4 4 8long long 8 8 86、基 本 语 句 C 语 言 的 基 本 语 句 跟 J av a 中 的 差 不 多,所 以,这 里 只 是 简 朴 地 提 一 下 循 环 语 句(do wh i 1 e、w h ile for)条 件 语 句(i f、if-el s ex s w itc h)g o to语 句 7、基 本 运 算 1、算 术 运
13、算 符+加 法 运 算 符-减 法 运 算 符,或 负 值 运 算 符*乘 法 运 算 符/除 法 运 算 符%模 运 算 符,或 称 取 余 运 算 符,规 定;两 侧 均 为 整 整 2、关 系 运 算 符 小 于 运 算 符 大 于 运 算 符=大 于 等 于 运 算 符=等 于 运 算 符!=不 等 于 运 算 符 3、逻 辑 运 算 符&逻 辑 与 运 算 符 I I 逻 辑 或 运 算 符!逻 辑 非 运 算 符 4、赋 值 运 算 符 1.简 朴 的 赋 值 运 算 符=:i n t a=5;2.复 合 赋 值 运 算 符+=加 赋 值 运 算 符。如 a+=3+1,等 价 于
14、a=a+(3+1)-=减 赋 值 运 算 符。如 a-=3+1,等 价 于 a=a-(3+1)*=乘 赋 值 运 算 符。如 a*=3+1,等 价 于 a=a*(3+1)/=除 赋 值 运 算 符。如 a/=3+1,等 价 于 a=a/(3+1)%=取 余 赋 值 运 算 符。如 a%=3+1,等 价 于 a=a%(3+1)5、自 增 自 减 运 算 符+自 增 运 算 符。如 a+,+a,都 等 价 于 a=a+1 自 减 运 算 符。如 a,a,都 等 价 于 a=a-16、逗 号 运 算 符,逗 号 表 达 式 用 逗 号 运 算 符 连 接 起 来 的 表 达 式 称 为 逗 号 表
15、达 式,它 的 一 般 形 式 为:表 达 式 1,表 达 式 2,,表 达 式 n 逗 号 表 达 式 的 运 算 过 程 是:从 左 到 右 的 顺 序,先 计 算 表 达 式 L 接 着 计 算 表 达 式 2,.最 后 计 算 表 达 式 n*整 个 逗 号 表 达 式 的 值 是 最 后 个 表 达 式 的 值 int a=2;int b=0;int c;c=(+ar a*=2,b=a*5);printf(wc=%dwr c);+a 的 结 果 为 3,a*=2 的 结 果 为 6,b=a*5 的 结 果 为 3 0。因 此,输 出 结 果 为:C=3 07、条 件 运 算 符 条
16、件 表 达 式 其 实 就 是 三 目 运 算 符,一 般 形 式 为:表 达 式 1?表 达 式 2:表 达 式 3in t a=(b 5)?10:9;8、S i z e o f彩 i z e o f可 以 用 来 计 算 一 个 变 量 或 者 一 个 常 量、一 种 数 据 类 型 所 占 的 内 存 字 节 数。siz e o f一 共 有 3 种 形 式 s iz e o f(变 量 常 量)s iz e o f(10);char c=*a;s iz e c f(c);s i ze 0 f 变 量 常 量 sizeo f 10;char c=a;sizeo f c;s i z e o
17、f(数 据 类 型)s i z e c f(f l o a t);注 意,不 可 以 写 成 s iz e o f f 1 o a t;8、数 组 一 维 数 组 定 义 的 形 式 为:类 型 数 组 名 元 素 个 数 i nt a5;只 能 放 在 数 组 名 的 后 面,下 面 的 都 是 错 误 写 法:in t5 a;/错 误 in t b;/错 误 口 里 面 的 个 数 必 须 是 一 个 固 定 值,可 以 是 常 量(比 如 6、8)、常 量 表 达 式(比 如 3+4、5*7)。绝 对 不 能 使 用 变 乱 或 者 变:表 达 式 来 表 达 元 素 个 数,大 多 数
18、 情 况 下 不 要 省 略 元 素 个 数(当 数 组 作 为 函 数 的 形 参 和 数 组 初 始 化 时 除 外)下 面 的 都 是 对 的 写 法:int a 5;整 型 常 量 int bA;/字 符 常 量,其 实 就 是 65i n t c3*4;/整 型 常 量 表 达 式 下 面 的 都 是 能 法 写 法:int a;/没 有 指 定 元 素 个 数,错 误 int i=9;int a i;/用 变 量 做 元 素 个 数,错 误 定 义 数 组 时,系 统 将 按 照 数 组 类 型 和 个 数 分 派 一 段 连 续 的 存 储 空 间 来 存 储 数 组 元 素,毅
19、 组 名 代 表 着 整 个 数 组 的 地 址,鞭 曝 敷 组 的 起 始 地 址 如 i n t a 3 其 实 a 不 算 是 变 量,是 个 常 量,它 代 表 1 爨 鲤 域 k a=&a 0 初 始 化 的 一 般 形 式 是:类 型 数 组 名 元 素 个 数=元 素 1,元 素 2,int a2=8,10;其 实 相 称 于:in t a 2;a0=8;a 1=10;注 意 的 是:C 语 言 中 编 译 器 是 不 会 时 数 组 下 标 越 界 进 行 检 雀 的,所 以 自 己 访 问 数 组 元 素 时 要 小 心元 素 值 列 表 可 以 是 数 组 所 有 元 素
20、的 初 值,也 可 以 是 前 面 部 分 元 素 的 初 值 i n t a 4=2,5;当 数 组 为 整 型 时,初 始 化 未 拟 定 初 值 的 元 素,默 认 为 0,所 以 上 面 的 a 2、a 3 都 为 0当 对 所 有 数 组 元 素 都 赋 初 值 时,可 以 省 略 元 素 个 数 n t a=2,5,7;说 明 数 组 a 的 元 素 个 数 是 3数 组 初 始 化 时 的 赋 值 方 式 只 能 用 于 数 组 的 定 义,定 义 之 后 只 能 一 个 元 素 一 个 元 素 地 赋 值 下 面 的 写 法 是 错 误 的:int a3;也 3=1,2,3);
21、/错 误 a=1,2,3);/错 误 其 实 为 什 么 是 错 误 的 写 法 呢?我 们 可 以 简 要 分 析 一 下。1 第 2 行 的 a 3 代 表 着 访 问 数 组 的 第 4 个 元 素,一 方 面 这 里 已 经 是 数 组 下 标 越 界 了;就 算 没 有 越 界,给 a 3 赋 值 时 也 应 当 赋 一 个 in t 类 型 的 整 数,不 应 当 是(。2 第 3 行 的 a 是 数 组 名,代 表 着 数 组 的 地 址,它 是 个 常 行!给 常 量 赋 值,那 肯 定 错 了!维 数 汇 的 元 索 作 为 函 数 实 参,与 同 类 型 的 简 朴 变 量
22、 作 为 实 参 同 样,是 单 向 的 值 传 递,即 数 组 元 素 的 值 传 给 形 参,形 参 的 改 变 不 影 响 实 参/婕 8 画 数 的 形 参(形 式 参 数)vo id t e s t(in t b)b=9;te s t(a 0);/a 0 是 c e s t数 的 实 参(实 际 参 数)假 如 维 数 组 的 冬 丁 作 为 函 数 实 参,传 递 的 是 整 个 数 组,这 样 形 参 数 组 修 改 时,实 参 数 组 也 同 时 被 修 改 了。形 多 数 组 的 元 素 个 数 可 以 省 略。/娓 8 3 晅 数 的 形 参(形 式 参 数)v o id
23、t e a t(i n t b)/也 可 以 写 i n t b 3 b 0=9;te s t(a);/a是 CR3七 函 数 的 实 参(实 际 参 数)二 维 数 组 定 义 形 式:类 型 数 组 名 行 数 列 数 int a2;共 2 行 3 列,6 个 元 素 a 0,a 1 也 是 数 组,是 一 维 数 组,并 且 a 0,a l 就 是 数 组 名,因 此 a 0 1、a 1 就 代 表 着 这 个 一 维 数 组 的 地 址 按 行 进 行 初 始 化 int a2 3=2,2,3,3,4,5);按 存 储 顺 序 进 行 初 始 化(先 存 放 第 1行,再 存 放 第
24、2 行)int a 2 3=2,2,3,3,4,5;对 部 分 元 素 进 行 初 始 化 i nt a23=2,3,4;int b33=,2,1,2,3);假 如 只 初 始 化 了 部 分 元 素,可 以 省 略 行 数,但 是 不 可 以 省 略 列 数 int a 3=1,2,3,4,5,6);int a 3=1,2,3,3,5,;oint a2=1,2,3,4,5,6;/错 误 写 法 二 维 数 组 会 先 存 放 第 1 行 的 元 素,由 于 不 拟 定 列 数,也 就 是 不 拟 定 第 1 行 要 存 放 多 少 个 元 素,所 以 这 里 会 产 生 很 多 种 情 况,
25、所 以 只 指 定 行 数 是 错 误 的9、字 符 串 在 C 语 言 中,我 们 可 以 用 不 符 数 组 来 存 储 字 符 串。*字 符 串 可 以 看 做 是 一 个 特 殊 的 字 符 数 组,为 了 跟 普 通 的 字 符 数 组 区 分 开 来,应 当 在 字 符 串 的 尾 部 添 加 了 一 个 结 束 标 志,0。o,是 一 个 A S C工 工 码 值 为 0 的 字 符,是 一 个 空 操 作 符,表 达 什 么 也 不 干。所 以 采 用 字 符 数 组 存 放 字 符 串,赋 值 时 应 包 含 结 束 标 志 1 0。文 字 符 串“m j”的 存 储 情 况
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2023 语言 精简 笔记
限制150内