@@ -58,8 +58,8 @@
< link rel = "preconnect" href = "https://fonts.gstatic.com" crossorigin >
< link rel = "stylesheet" href = "https://fonts.googleapis.com/css?family=Noto+Sans+SC:300,300i,400,400i,700,700i%7CFira+Code :400,400i,700,700i&display=fallback" >
< style > : root { --md-text-font : "Noto Sans SC" ; --md-code-font : "Fira Code " } < / style >
< link rel = "stylesheet" href = "https://fonts.googleapis.com/css?family=Noto+Sans+SC:300,300i,400,400i,700,700i%7CJetBrains+Mono :400,400i,700,700i&display=fallback" >
< style > : root { --md-text-font : "Noto Sans SC" ; --md-code-font : "JetBrains Mono " } < / style >
@@ -4475,7 +4475,7 @@
< p > 那么,基本数据类型与数据结构之间有什么联系呢?我们知道,数据结构是在计算机中组织与存储数据的方式。这句话的主语是“结构”而非“数据”。< / p >
< p > 如果想表示“一排数字”,我们自然会想到使用数组。这是因为数组的线性结构可以表示数字的相邻关系和顺序关系,但至于存储的内容是整数 < code > int< / code > 、小数 < code > float< / code > 还是字符 < code > char< / code > ,则与“数据结构”无关。< / p >
< p > 换句话说,< strong > 基本数据类型提供了数据的“内容类型”,而数据结构提供了数据的“组织方式”< / strong > 。例如以下代码,我们用相同的数据结构(数组)来存储与表示不同的基本数据类型,包括 < code > int< / code > 、< code > float< / code > 、< code > char< / code > 、< code > bool< / code > 等。< / p >
< div class = "tabbed-set tabbed-alternate" data-tabs = "1:14 " > < input checked = "checked" id = "__tabbed_1_1" name = "__tabbed_1" type = "radio" / > < input id = "__tabbed_1_2" name = "__tabbed_1" type = "radio" / > < input id = "__tabbed_1_3" name = "__tabbed_1" type = "radio" / > < input id = "__tabbed_1_4" name = "__tabbed_1" type = "radio" / > < input id = "__tabbed_1_5" name = "__tabbed_1" type = "radio" / > < input id = "__tabbed_1_6" name = "__tabbed_1" type = "radio" / > < input id = "__tabbed_1_7" name = "__tabbed_1" type = "radio" / > < input id = "__tabbed_1_8" name = "__tabbed_1" type = "radio" / > < input id = "__tabbed_1_9" name = "__tabbed_1" type = "radio" / > < input id = "__tabbed_1_10" name = "__tabbed_1" type = "radio" / > < input id = "__tabbed_1_11" name = "__tabbed_1" type = "radio" / > < input id = "__tabbed_1_12" name = "__tabbed_1" type = "radio" / > < input id = "__tabbed_1_13" name = "__tabbed_1" type = "radio" / > < input id = "__tabbed_1_14" name = "__tabbed_1" type = "radio" / > < div class = "tabbed-labels" > < label for = "__tabbed_1_1" > Python< / label > < label for = "__tabbed_1_2" > C++< / label > < label for = "__tabbed_1_3" > Java< / label > < label for = "__tabbed_1_4" > C#< / label > < label for = "__tabbed_1_5" > Go< / label > < label for = "__tabbed_1_6" > Swift< / label > < label for = "__tabbed_1_7" > JS< / label > < label for = "__tabbed_1_8" > TS< / label > < label for = "__tabbed_1_9" > Dart< / label > < label for = "__tabbed_1_10" > Rust< / label > < label for = "__tabbed_1_11" > C< / label > < label for = "__tabbed_1_12" > Kotlin< / label > < label for = "__tabbed_1_13" > Ruby< / label > < label for = "__tabbed_1_14" > Zig< / label > < / div >
< div class = "tabbed-set tabbed-alternate" data-tabs = "1:13 " > < input checked = "checked" id = "__tabbed_1_1" name = "__tabbed_1" type = "radio" / > < input id = "__tabbed_1_2" name = "__tabbed_1" type = "radio" / > < input id = "__tabbed_1_3" name = "__tabbed_1" type = "radio" / > < input id = "__tabbed_1_4" name = "__tabbed_1" type = "radio" / > < input id = "__tabbed_1_5" name = "__tabbed_1" type = "radio" / > < input id = "__tabbed_1_6" name = "__tabbed_1" type = "radio" / > < input id = "__tabbed_1_7" name = "__tabbed_1" type = "radio" / > < input id = "__tabbed_1_8" name = "__tabbed_1" type = "radio" / > < input id = "__tabbed_1_9" name = "__tabbed_1" type = "radio" / > < input id = "__tabbed_1_10" name = "__tabbed_1" type = "radio" / > < input id = "__tabbed_1_11" name = "__tabbed_1" type = "radio" / > < input id = "__tabbed_1_12" name = "__tabbed_1" type = "radio" / > < input id = "__tabbed_1_13" name = "__tabbed_1" type = "radio" / > < div class = "tabbed-labels" > < label for = "__tabbed_1_1" > Python< / label > < label for = "__tabbed_1_2" > C++< / label > < label for = "__tabbed_1_3" > Java< / label > < label for = "__tabbed_1_4" > C#< / label > < label for = "__tabbed_1_5" > Go< / label > < label for = "__tabbed_1_6" > Swift< / label > < label for = "__tabbed_1_7" > JS< / label > < label for = "__tabbed_1_8" > TS< / label > < label for = "__tabbed_1_9" > Dart< / label > < label for = "__tabbed_1_10" > Rust< / label > < label for = "__tabbed_1_11" > C< / label > < label for = "__tabbed_1_12" > Kotlin< / label > < label for = "__tabbed_1_13" > Ruby< / label > < / div >
< div class = "tabbed-content" >
< div class = "tabbed-block" >
< div class = "highlight" > < pre > < span > < / span > < code > < a id = "__codelineno-0-1" name = "__codelineno-0-1" href = "#__codelineno-0-1" > < / a > < span class = "c1" > # 使用多种基本数据类型来初始化数组< / span >
@@ -4577,22 +4577,6 @@
< a id = "__codelineno-12-2" name = "__codelineno-12-2" href = "#__codelineno-12-2" > < / a > < span class = "n" > data< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "o" > [< / span > < span class = "mi" > 0< / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "mi" > 0< / span > < span class = "o" > .< / span > < span class = "mi" > 0< / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "s1" > ' a' < / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "kp" > false< / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "no" > ListNode< / span > < span class = "p" > (< / span > < span class = "mi" > 0< / span > < span class = "p" > )< / span > < span class = "o" > ]< / span >
< / code > < / pre > < / div >
< / div >
< div class = "tabbed-block" >
< div class = "highlight" > < pre > < span > < / span > < code > < a id = "__codelineno-13-1" name = "__codelineno-13-1" href = "#__codelineno-13-1" > < / a > < span class = "kr" > const< / span > < span class = "w" > < / span > < span class = "n" > hello< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "p" > [< / span > < span class = "mi" > 5< / span > < span class = "p" > ]< / span > < span class = "kt" > u8< / span > < span class = "p" > {< / span > < span class = "w" > < / span > < span class = "s" > ' h' < / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "s" > ' e' < / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "s" > ' l' < / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "s" > ' l' < / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "s" > ' o' < / span > < span class = "w" > < / span > < span class = "p" > };< / span >
< a id = "__codelineno-13-2" name = "__codelineno-13-2" href = "#__codelineno-13-2" > < / a > < span class = "c1" > // 以上代码展示了定义一个字面量数组的方式,其中你可以选择指明数组的大小或者使用 _ 代替。使用 _ 时, Zig 会尝试自动计算数组的长度< / span >
< a id = "__codelineno-13-3" name = "__codelineno-13-3" href = "#__codelineno-13-3" > < / a >
< a id = "__codelineno-13-4" name = "__codelineno-13-4" href = "#__codelineno-13-4" > < / a > < span class = "kr" > const< / span > < span class = "w" > < / span > < span class = "n" > matrix_4x4< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "p" > [< / span > < span class = "mi" > 4< / span > < span class = "p" > ][< / span > < span class = "mi" > 4< / span > < span class = "p" > ]< / span > < span class = "kt" > f32< / span > < span class = "p" > {< / span >
< a id = "__codelineno-13-5" name = "__codelineno-13-5" href = "#__codelineno-13-5" > < / a > < span class = "w" > < / span > < span class = "p" > [< / span > < span class = "n" > _< / span > < span class = "p" > ]< / span > < span class = "kt" > f32< / span > < span class = "p" > {< / span > < span class = "w" > < / span > < span class = "mf" > 1.0< / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "mf" > 0.0< / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "mf" > 0.0< / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "mf" > 0.0< / span > < span class = "w" > < / span > < span class = "p" > },< / span >
< a id = "__codelineno-13-6" name = "__codelineno-13-6" href = "#__codelineno-13-6" > < / a > < span class = "w" > < / span > < span class = "p" > [< / span > < span class = "n" > _< / span > < span class = "p" > ]< / span > < span class = "kt" > f32< / span > < span class = "p" > {< / span > < span class = "w" > < / span > < span class = "mf" > 0.0< / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "mf" > 1.0< / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "mf" > 0.0< / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "mf" > 1.0< / span > < span class = "w" > < / span > < span class = "p" > },< / span >
< a id = "__codelineno-13-7" name = "__codelineno-13-7" href = "#__codelineno-13-7" > < / a > < span class = "w" > < / span > < span class = "p" > [< / span > < span class = "n" > _< / span > < span class = "p" > ]< / span > < span class = "kt" > f32< / span > < span class = "p" > {< / span > < span class = "w" > < / span > < span class = "mf" > 0.0< / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "mf" > 0.0< / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "mf" > 1.0< / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "mf" > 0.0< / span > < span class = "w" > < / span > < span class = "p" > },< / span >
< a id = "__codelineno-13-8" name = "__codelineno-13-8" href = "#__codelineno-13-8" > < / a > < span class = "w" > < / span > < span class = "p" > [< / span > < span class = "n" > _< / span > < span class = "p" > ]< / span > < span class = "kt" > f32< / span > < span class = "p" > {< / span > < span class = "w" > < / span > < span class = "mf" > 0.0< / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "mf" > 0.0< / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "mf" > 0.0< / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "mf" > 1.0< / span > < span class = "w" > < / span > < span class = "p" > },< / span >
< a id = "__codelineno-13-9" name = "__codelineno-13-9" href = "#__codelineno-13-9" > < / a > < span class = "p" > };< / span >
< a id = "__codelineno-13-10" name = "__codelineno-13-10" href = "#__codelineno-13-10" > < / a > < span class = "c1" > // 多维数组(矩阵)实际上就是嵌套数组,我们很容易就可以创建一个多维数组出来< / span >
< a id = "__codelineno-13-11" name = "__codelineno-13-11" href = "#__codelineno-13-11" > < / a >
< a id = "__codelineno-13-12" name = "__codelineno-13-12" href = "#__codelineno-13-12" > < / a > < span class = "kr" > const< / span > < span class = "w" > < / span > < span class = "n" > array< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "p" > [< / span > < span class = "n" > _< / span > < span class = "o" > :< / span > < span class = "mi" > 0< / span > < span class = "p" > ]< / span > < span class = "kt" > u8< / span > < span class = "p" > {< / span > < span class = "w" > < / span > < span class = "mi" > 1< / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "mi" > 2< / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "mi" > 3< / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "mi" > 4< / span > < span class = "w" > < / span > < span class = "p" > };< / span >
< a id = "__codelineno-13-13" name = "__codelineno-13-13" href = "#__codelineno-13-13" > < / a > < span class = "c1" > // 定义一个哨兵终止数组,本质上来说,这是为了兼容 C 中的规定的字符串结尾字符\0。我们使用语法 [N:x]T 来描述一个元素为类型 T, 长度为 N 的数组,在它对应 N 的索引处的值应该是 x< / span >
< / code > < / pre > < / div >
< / div >
< / div >
< / div >
< details class = "pythontutor" >