This commit is contained in:
许大仙 2024-08-12 09:53:23 +08:00
parent 871c2f4869
commit e0aa4e075f
2 changed files with 9 additions and 4 deletions

View File

@ -523,9 +523,14 @@ sizeof(表达式)
> * ② 返回某种数据类型或某个值占用的字节数量(内存中的存储单元),并且 `sizeof(...)` 的`返回值类型`是 `size_t`
> * ③ 在 `printf` 中使用占位符 `%zu` 来处理 `size_t` 类型的值。
> * ④ 之前也提过C 语言没有一个统一的官方机构来制定或强制执行其标准而是由一个标准委员会负责制定标准。不同的编译器可以选择部分或完全遵循这些标准。因此C 语言的编译器实现可能会有所不同,这就要求程序员在编写跨平台代码时特别注意数据类型的大小和布局。
> * ⑤ 与 C 语言不同Java 和 JavaScript 等语言的标准是强制性的。在 Java 语言中,`int` 类型在所有平台上都是 4 个字节,无论是在 Linux、macOS 还是 Windows 上。因此,这些语言不需要像 C 语言那样依赖 `sizeof` 来处理不同平台上的数据类型大小差异,因为编译器已经在底层处理了这些差异。
> * ⑤ 与 C 语言不同Java 和 JavaScript 等语言的标准是强制性的。在 Java 语言中,`int` 类型在所有平台上都是 4 个字节,无论是在 Linux、MacOS 还是 Windows 上。因此,这些语言不需要像 C 语言那样依赖 `sizeof` 来处理不同平台上的数据类型大小差异,因为编译器已经在底层处理了这些差异。
> [!IMPORTANT]
>
> 总结:`sizeof` 运算符在 C 语言中的重要性在于它为程序员提供了一个处理不同平台上数据类型大小差异的工具,而 Java 和 JavaScript 由于其标准化的实现,不需要 `sizeof` 这样的工具来保证跨平台的一致性。
> 总结:
>
> * ① `sizeof` 运算符在 C 语言中的重要性在于它为程序员提供了一个处理不同平台上数据类型大小差异的工具,而 Java 和 JavaScript 由于其标准化的实现,不需要 `sizeof` 这样的工具来保证跨平台的一致性。
> * ② 当然,如果你在 C 语言中使用精确宽度类型int8_t、int16_t、int32_t、uint8_t、 uint16_t、uint32_t 等,也可以确保代码在各个平台上的一致性。

View File

@ -1465,9 +1465,9 @@ int main() {
![](./assets/31.svg)
* 之所以,加了内存地址,就能加快数据的存取速度,可以类比生活中的`字典`
* 之所以,加了`内存地址`,就能`加快`数据的存取速度,可以类比生活中的`字典`
* 如果没有使用`拼音查找法`或`部首查找法`,我们需要一页一页,一行一行的,在整个字典中去搜索我们想要了解的汉字,效率非常低(如果要搜索的汉字在最后一页,可能需要将整个字典从头到尾翻一遍)。
* 如果没有使用`拼音查找法`或`部首查找法`,我们需要一页一页,一行一行的,在整个字典中去搜索我们想要了解的汉字,效率非常低(如果要搜索的汉字在最后一页,可能需要将整个字典从头到尾翻一遍,这辈子真有可能翻得完?)。
![](./assets/32.gif)