如对付下面的一个字符串数组:
str = {
“I love C.”,

“I love C++.”,
“I love JAVA.”,
“I love Python.”,
“I love LabVIEW.”
}
下面给出C措辞中的两种定义方法。
方法1:定义一个char类型的二维数组这种方法是通过定义一个char类型的二维数组实现,通过二维数组的行索引可得到数组中的每个字符串,列的大小限定了每个字符串所能包含的最大字符个数,以是采取这种定义办法时,列的大小必须不能小于数组所有字符串的最大长度。如对付上面的数组,C措辞的定义代码如下:
在取该数组的每个字符串时,直接对行索引即可。
方法2:定义一个指向char类型的指针数组这种方法是通过定义一个指向char类型的指针数组实现,数组中的每个元素都是一个指针,通过该指针可得到数组中的每个字符串。如对付上面的数组,C措辞的定义代码如下:
两种方法比拟
上面的两种方法都可以实现我们的目的,但在内存的占用上两种方法不同。第1种方法定义了一个5行20列的二维数组,即每个字符串所占的字节长度都为20个,以是共须要占用100个字节,而第2种方法是定义的指针数组,每个指针指向的字符串占用的字节长度是其实际长度,以是其总的长度肯定小于100个字节。综合来讲,第1种方法相对付第2种方法,造成了存储空间的摧残浪费蹂躏情形。
完全的测试代码
下面给出这个例子的完全的C措辞测试代码,如下图所示:
程序运行结果如下图所示:
总结
一样平常在C措辞中定义字符串的数组时,推举利用第2种方法,特殊是对付单片机、嵌入式等方面的程序开拓时,可以充分利用有限的硬件资源,避免存储空间的摧残浪费蹂躏。
欢迎加关注,共同互换。