mirror of
https://github.com/Aexiar/c.git
synced 2024-10-22 14:05:45 +02:00
c
This commit is contained in:
parent
83a3bb5729
commit
5874bc24ed
@ -113,7 +113,7 @@
|
||||
|
||||
> [!IMPORTANT]
|
||||
>
|
||||
> 总结:CPU 都是直接和内存打交道的,即:CPU 会直接从内存中读取数据,待数据处理完毕之后,会将结果再次写入到内存中;如果需要将数据持久化(永久)保存(内存是易失性存储器,内存中的数据是以电荷形式存储在存储单元中的。当计算机关闭或断电时,这些电荷很快消散,导致存储在内存中的数据丢失),那么就需要将内存中的数据再刷新到磁盘或硬盘上,即:落盘。
|
||||
> CPU 都是直接和内存打交道的,即:CPU 会直接从内存中读取数据,待数据处理完毕之后,会将结果再次写入到内存中;如果需要将数据持久化(永久)保存(内存是易失性存储器,内存中的数据是以电荷形式存储在存储单元中的。当计算机关闭或断电时,这些电荷很快消散,导致存储在内存中的数据丢失),那么就需要将内存中的数据再刷新到磁盘或硬盘上,即:落盘。
|
||||
|
||||
## 1.4 计算机软件
|
||||
|
||||
@ -328,7 +328,7 @@ int main() { // 定义主函数
|
||||
|
||||
* 这种语言本质上是计算机能识别的`唯一语言`,人类很难理解;换言之,当时的程序员 99.9% 都是异类!!!
|
||||
|
||||
> [!IMPORTANT]
|
||||
> [!WARNING]
|
||||
>
|
||||
> * ① 不同类型(CPU 架构,如:x86_64、arm 等)的处理器有不同的机器语言指令集,指令集架构(ISA)决定了机器语言的具体形式。
|
||||
> * ② 换言之,机器语言与特定硬件架构紧密相关,机器语言程序几乎没有可移植性。
|
||||
@ -341,7 +341,7 @@ int main() { // 定义主函数
|
||||
|
||||
* 汇编语言的`优点`是能编写`高效率`的程序;但是,`缺点`和机器语言没什么不同,汇编语言同样`依赖于具体的计算机架构(面向机器)`,程序不具备跨平台的可移植性。
|
||||
|
||||
> [!NOTE]
|
||||
> [!WARNING]
|
||||
>
|
||||
> * ① 汇编语言,目前仍然应用于工业电子编程领域、软件的加密解密、计算机病毒分析等。
|
||||
> * ② 汇编语言是编程语言的拓荒年代,它非常底层,直接和计算机硬件打交道,开发效率低,学习成本高。
|
||||
@ -362,7 +362,10 @@ int main() { // 定义主函数
|
||||
> * ② C 语言是“[面向过程](https://zh.wikipedia.org/wiki/%E8%BF%87%E7%A8%8B%E5%BC%8F%E7%BC%96%E7%A8%8B)”的编程语言,已经脱离了计算机硬件,可以用来设计和开发`中等`规模的程序。
|
||||
> * ③ Java、C++、Python、C# 等都是“[面向对象](https://zh.wikipedia.org/wiki/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1)”的编程语言(它们在“[面向过程](https://zh.wikipedia.org/wiki/%E8%BF%87%E7%A8%8B%E5%BC%8F%E7%BC%96%E7%A8%8B)”的基础上又增加了很多概念),可以用来设计和开发`中大型`规模的程序。
|
||||
>
|
||||
> 总结:C 语言出现的时候,已经度过了编程语言的拓荒年代,具备了现代编程语言的特性,但是这个时候还没有出现“[软件危机](https://zh.wikipedia.org/wiki/%E8%BD%AF%E4%BB%B6%E5%8D%B1%E6%9C%BA)”,人们没有动力去开发更加高级的语言,所以也没有太复杂的编程思想;而之后出现的“[面向对象](https://zh.wikipedia.org/wiki/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1)”的编程思想解决了一部分在“[软件危机](https://zh.wikipedia.org/wiki/%E8%BD%AF%E4%BB%B6%E5%8D%B1%E6%9C%BA)”上的窘境。
|
||||
|
||||
> [!IMPORTANT]
|
||||
>
|
||||
> C 语言出现的时候,已经度过了编程语言的拓荒年代,具备了现代编程语言的特性,但是这个时候还没有出现“[软件危机](https://zh.wikipedia.org/wiki/%E8%BD%AF%E4%BB%B6%E5%8D%B1%E6%9C%BA)”,人们没有动力去开发更加高级的语言,所以也没有太复杂的编程思想;而之后出现的“[面向对象](https://zh.wikipedia.org/wiki/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1)”的编程思想解决了一部分在“[软件危机](https://zh.wikipedia.org/wiki/%E8%BD%AF%E4%BB%B6%E5%8D%B1%E6%9C%BA)”上的窘境。
|
||||
|
||||
### 2.3.4 总结
|
||||
|
||||
@ -632,4 +635,4 @@ int main() { // 定义主函数
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> 总结:C++ 是 C 语言的继承者和扩展,它保留了 C 语言的优势,并引入了更多现代编程语言的特性,使得它在更广泛的应用领域中得到应用。
|
||||
> C++ 是 C 语言的继承者和扩展,它保留了 C 语言的优势,并引入了更多现代编程语言的特性,使得它在更广泛的应用领域中得到应用。
|
||||
|
@ -527,10 +527,8 @@ sizeof(表达式)
|
||||
|
||||
> [!IMPORTANT]
|
||||
>
|
||||
> 总结:
|
||||
>
|
||||
> * ① `sizeof` 运算符在 C 语言中的重要性在于它为程序员提供了一个处理不同平台上数据类型大小差异的工具,而 Java 和 JavaScript 由于其标准化的实现,不需要 `sizeof` 这样的工具来保证跨平台的一致性。
|
||||
> * ② 当然,如果你在 C 语言中,使用精确宽度类型,如:int8_t、int16_t、int32_t、uint8_t、 uint16_t、uint32_t 等,也可以确保代码在各个平台上的一致性。
|
||||
>* ② 当然,如果你在 C 语言中,使用精确宽度类型,如:int8_t、int16_t、int32_t、uint8_t、 uint16_t、uint32_t 等,也可以确保代码在各个平台上的一致性。
|
||||
|
||||
|
||||
|
||||
|
@ -1516,10 +1516,8 @@ int main() {
|
||||
|
||||
> [!IMPORTANT]
|
||||
>
|
||||
> 总结:
|
||||
>
|
||||
> * ① 内存地址是内存中每个单元的编号。
|
||||
> * ② 内存地址的作用是操作系统用来快速管理内存空间的。
|
||||
>* ② 内存地址的作用是操作系统用来快速管理内存空间的。
|
||||
> * ③ 在 32 位操作系统上,内存地址以 32 位的二进制数字表示,最大支持的的内存是 4 GB,所以 32 位操作系统已经被淘汰。
|
||||
> * ④ 在 64 位操作系统上,内存地址以 64 位的二进制数字表示,由于表示形式太长,我们通常会转为十六进制,以方便阅读。
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user