Skip to content

换个姿势学C语言

0. 说明

《换个姿势学C语言》由何旭辉 著,清华大学出版社2022年出版。感谢何老师!

Snipaste_2024-03-10_14-51-10.png

这是一本非常不错的书!

5. 获取完整的牌价数据

5.3 字符和字符串

在5.1.2节中,我们已经可以使用一个双精度浮点型数组存储现汇买入价、现钞买入价、现汇卖出价、现钞卖出价和中行折算价。

Snipaste_2024-03-10_00-12-26.png

对于文字,很多语言提供了“字符串”这种数据类型。

  • 字符串可用于存储多个连续的字符。

  • 你在在阅读的教程文本、人名、要显示的货币名称等都是字符串。

  • 字符串中的字符可以是汉字、字母、数字、符号或者其他国家的文字符号。

  • C语言并没有提供“字符串”这种数据类型。

deepseek的回答:

在C语言中,没有直接提供“字符串”数据类型,而是通过字符数组和字符指针来处理字符串。这种设计有以下几个原因:

  1. 历史原因 C语言诞生于20世纪70年代,设计初衷是用于系统编程,强调简洁和高效。当时的内存和处理能力有限,因此C语言选择了一种轻量级的方式处理字符串,即使用字符数组和指针。

  2. 灵活性 C语言的设计理念是提供底层控制,允许程序员直接操作内存。通过字符数组和指针,程序员可以灵活地管理字符串的内存分配、复制、拼接等操作,而不依赖于高级语言中的“黑箱”实现。

  3. 与硬件的紧密联系 C语言的设计目标是贴近硬件,字符数组和指针可以很好地映射到内存的连续地址空间。这种设计使得C语言在处理字符串时非常高效,适合系统编程和嵌入式开发。

  4. 简单性 C语言的核心语法非常简洁,没有引入复杂的字符串类型。通过字符数组和指针,C语言可以用最小的语法开销实现字符串操作。

  5. \0结尾的约定 C语言中的字符串以\0(空字符)作为结束标志,这种设计简单且高效。虽然需要程序员手动管理字符串的长度和内存,但也避免了额外的存储开销。

  6. 标准库支持 虽然C语言本身没有字符串类型,但标准库(如<string.h>)提供了丰富的字符串操作函数(如strcpystrlenstrcat等),弥补了语言本身的不足。

总结 C语言不提供字符串类型是为了保持语言的简洁性、灵活性和高效性。通过字符数组和指针,程序员可以完全控制字符串的内存和操作,虽然这增加了编程的复杂性,但也使得C语言在系统编程和底层开发中表现出色。

我们先来了解C语言中是如何处理字符和字符串的。

5.3.1 计算机中的字符

本首页参考 https://notes.fe-mm.com/ 配置而成