C语言字符串数组的定义方式

2023-09-22 07:31:49

方法1:定义一个char类型的二维数组

    char str[4][20] = {"I love C","I love you","C语言","string"};

这种方法是通过定义一个char类型的二维数组实现,通过二维数组的行索引可得到数组中的每个字符串,列的大小限定了每个字符串所能包含的最大字符个数,所以采用这种定义方式时,列的大小必须不能小于数组所有字符串的最大长度;
在取该数组的每个字符串时,直接对行索引即可

方法2:定义一个指向char类型的指针数组

这种方法是通过定义一个指向char类型的指针数组实现,数组中的每个元素都是一个指针,通过该指针可得到数组中的每个字符串。如对于上面的数组,C语言的定义代码如下:

    char  *str[5] = { "I love C","I love you","C语言","string" };

比较

上面的两种方法都可以实现我们的目的,但在内存的占用上两种方法不同。第1种方法定义了一个5行20列的二维数组,即每个字符串所占的字节长度都为20个,所以共需要占用100个字节,而第2种方法是定义的指针数组,每个指针指向的字符串占用的字节长度是其实际长度,所以其总的长度肯定小于100个字节。综合来讲,第1种方法相对于第2种方法,造成了存储空间的浪费情况

一般在C语言中定义字符串的数组时,推荐使用第2种方法,特别是对于单片机、嵌入式等方面的程序开发时,可以充分利用有限的硬件资源,避免存储空间的浪费。

更多推荐

AI----人工智能简介

【原文链接】AI----人工智能简介一、人工智能简介1.1人工智能发展的要素数据算法计算力1.2CPU和GPU的区别CPU主要适合I/O密集型的任务GPU主要适合计算密集型任务1.3人工智能、机器学习、深度学习的联系机器学习是人工智能的实现途径深度学习是机器学习的一个方法1.4人工智能发展阶段1.5人工智能主要分支计算

需求管理-架构真题(三十四)

产品配置是指一个产品在其生命周期各个阶段所产生的各种形式(机器可读或人工可读)和各种版本的()的集合。(2021)需求规格说明、设计说明、测试报告需求规格说明、设计说明、计算机程序设计说明、用户手册、计算机程序文档、计算机程序、部件及数据答案:D解析:产品配置主要就是文档、计算机程序、部件及数据的集合。需求管理的主要活

Matlab程序结构

目录顺序结构循环结构1、for循环结构分支结构1、if...end结构2、if...else...end结构3、switch...case...end结构顺序结构顺序结构是最简单的程序结构。用户在编写玩程序后,系统就将按照程序的实际位置逐一顺次执行。例1:求a、b两个数组的和>>a=[123];>>b=[456];>>

【OpenSSL】单向散列函数

什么是单向散列函数任意长度数据生成固定长度是散列快速计算消息变化散列变化单向不可逆,抗碰撞应用场景文件完整性口令加密消息认证伪随机数配合非对称加密做数字签名比特币工作量证明单向hash抗碰撞弱抗碰撞给定X和hash值的情况下,找到另外个数,hash值相同。强抗碰撞找到散列值相同的两个字符串MD5,SHA-1已经被攻破可

竞赛 基于深度学习的人脸表情识别

文章目录0前言1技术介绍1.1技术概括1.2目前表情识别实现技术2实现效果3深度学习表情识别实现过程3.1网络架构3.2数据3.3实现流程3.4部分实现代码4最后0前言🔥优质竞赛项目系列,今天要分享的是基于深度学习的人脸表情识别该项目较为新颖,适合作为竞赛课题方向,学长非常推荐!🧿更多资料,项目分享:https:/

Learn Prompt-Prompt 高级技巧:API-Bank & AgentBench

模型评估是Agent学习过程中至关重要的一环。通过分析数据来评估Agent的能力,可以客观地衡量它在特定任务或领域中的表现。数据评估是不断迭代和改进的基础。通过反复评估和分析数据,Agent可以逐步改进自身,并不断优化其能力。数据评估还可以将Agent与其他Agent或标准进行比较,从而了解其在同一任务或领域中的相对能

Learn Prompt-GPT-4:综述

简介"GPT-4,这是OpenAI在扩大深度学习方面的最新里程碑。GPT-4是一个大型的多模态模型(接受图像和文本输入,发出文本输出),虽然在许多现实世界的场景中能力不如人类,但在各种专业和学术基准上表现出人类水平的性能。"--OpenAIGPT-4,顾名思义是GPT-3和GPT-3.5的下一代模型。相比前面的模型,G

汽车行业新闻稿怎么写?怎么写关于汽车的新闻稿?

撰写汽车行业新闻稿需要遵循一定的结构和要点,以确保内容准确、清晰,并能吸引读者的兴趣。以下是关于汽车的新闻稿的一些写作要点和建议,接下来伯乐网络传媒就来给大家分享一下:标题醒目:新闻稿的标题应该简洁明了,能够吸引读者的眼球并概括新闻的要点。可以使用一些字眼来突显重点,例如“首次亮相”、“全新发布”等。新闻价值:新闻稿应

Python Quine 介绍

一个Quine是一个产生其源代码作为输出的计算机程序。该程序不需要输入,并输出其源代码的副本。Quine很有趣,因为它们似乎违背了编程的目的,即根据输入生成输出。在某些情况下,Quine可能是有帮助的,例如当您需要生成程序源代码的副本时。运行PythonQuine创建一个Quine并不特别困难,但需要一些思考。基本思想

Python 基于PyCharm断点调试

视频版教程Python3零基础7天入门实战视频教程PyCharmDebug(断点调试)可以帮助开发者在代码运行时进行实时的调试和错误排查,提高代码开发效率和代码质量。准备一段代码defadd(num1,num2):returnnum1+num2if__name__=='__main__':fornuminrange(1

Linux Day18 TCP_UDP协议及相关知识

一、网络基础概念1.1网络网络是由若干结点和连接这些结点的链路组成,网络中的结点可以是计算机,交换机、路由器等设备。1.2互联网把多个网络连接起来就构成了互联网。目前最大的互联网就是因特网。网络设备有:交换机、路由器、集线器传输介质有:双绞线、同轴电缆、光纤,无线1.3IP地址IP地址就是给因特网上的每一个主机(或路由

热文推荐