给你举个例子,这里str就是一个二维数组,我手动输入10个字符串存入该数组,然后用该二维数组的行指针输出#include

字符数组内任意位置可写任意数据包括0x0,而字符串只有结束的位置有一个0x0,一但有了0x0这个数据,则字符串结束。对电脑而言只有二进制字节数组;对人脑才有字符、字符串、空字符结束符、数组等。
1、字符数组是指用来存放字符数据的数组。其定义的一般形式为: char 数组名[数据长度] 。字符数组用于存放字符或字符串,字符数组中的一个元素存放一个字符,它在内存中占用一个字节。C语言中没有字符串类型,字符串是存放在字符型数组中的。
以上定义了c为字符数组,包含10个元素。
由于字符型数据是以整数形式(ascII代码)存放的,因此也可以用整型数组来存放字符数据,例如:
但这时每个数组元素占2个字节的内存单元,浪费存储空间。[1]
字符数组也可以是二维或多维数组,例如:
即为二维字符数组。
3、字符串主要用于编程,概念说明、函数解释、用法详述见正文,这里补充一点:字符串在存储上类似字符数组,所以它每一位的单个元素都是可以提取的,如s=“abcdefghij”,则s[1]=“a”,s[10]="j",而字符串的零位正是它的长度,如s[0]=10(※上述功能Ansistring没有。),这可以给我们提供很多方便,如高精度运算时每一位都可以转化为数字存入数组。
C语言字符串能用数组表示,实际字符串就是字符数组。
1.用双引号引起来的就是字符串,字符串由字符组成,字符串以\0结尾,表示字符串结束符。
2.一般来说字符数组的长度是字符的个数加结束符,字符串使用“%s”格式化输出。
3.C语言标准库
不可以。当您在源代码中编写“String”时,它将直接写入可执行文件中,因为该值需要在编译时知道(有工具可以将软件分开并找到其中的所有纯文本字符串)。
当你写char *a = "This is a string",“这是字符串”的位置在可执行文件中,而指向的位置在可执行文件中。可执行映像中的数据是只读的。
您需要做的(如其他答案所指出的)是在堆上或堆栈帧上的位置创建该内存。