C语言之如何创建一个数组使每个元素为字符串(个人测试思考总结过程)

一、了解问题

众所周知,C 语言没有单独的字符串类型。我们要存储一个字符串,也必须要将它们分为一个个字符放入数组中,这个数组中的每个元素也只是一个个字符而非字符串。

char arr[10] = "abcd";
//['a','b','c','d','\0']

而想要创建一个每个元素都为字符串的数组,我们必须有一个能表示字符串的类型。这恰好也是这个问题的核心,c语言标准没有给我们一个类似int、char、double一样的现成的类型。所有我们必须人为创建一个类型出来。

二、分析问题

那我们到底如何创建一个字符串的类型呢?

我在一次学习数组时看到了这个:

对一个数组例如

int arr[10] = {0};

这个数组的每个元素类型为int,而整个数组它的类型可以用int [10]表示,这让我反应过来“我们要存储一个字符串,必须要将它们分为一个个字符放入数组中”可否理解为我们可以让一个字符数组作为一个字符串的类型。例如用char [10]表示一个长度最大为10的字符串类型。

三、测试

第一次测试我写了如下这行代码:

char[10] arr[] = {"abc","def","ghi"};

但遗憾的是编辑器显示了红色的波浪线,语法错了。于是我就思考哪里出了问题,忽然我想到了数组指针的创建:

char(*p)[10] = NULL;

它的变量名是写在中间的。

于是,我更改为:

char(arr[])[10] ={"abc","def","ghi"};

没有报错。

四、使用与监视窗口查看

于是我将其写成完整的程序,看看它的使用情况。

为更准确判断我打开监视窗口查看。

这充分说明了这个数组的每个元素确实都是字符串。同时也暗示了这本质上是一个二维数组。

五、个人总结

“如何创建一个数组使每个元素为字符串?”这只是我灵光一闪的想法,并没想过这是否有作用,也没查过是否有先例和讲解,这些对我来说并不重要,因为对逻辑的探索与思考往往比了解一个知识更具价值和意义。

在此希望大家在对待一个问题(不管是编程上的还是生活上的)时,不要只盯着解决方法,对待问题的思路与逻辑更加重要,哪怕问题最终没有解决,若实力更精进也是一种胜利。

如果本篇博客对你有帮助,就点个关注和赞吧!

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值