c语言数组定义
1、一维数组
定义公式:类型说明符 数组名[常量表达式];
注意:常量表达式包括常量与符号常量,不能包含变量。
例如:
int a[5];
char c[3];
上面的示例中,定义了一个int整型数组,数组名为a,定义的数组称为数组 a。还定义了一个字符类型的数组,数组名为c,定义的数组称为数组 c。
此时数组 a 中有 5 个元素,每个元素都是 int 型变量;数组c中有 3 个元素,每个元素都是 char 型变量。
说明:数组名除了表示该数组之外,还表示该数组的首地址。数组中的元素在内存中的地址是连续分配的。
下面我们来看看C语言定义和初始化一维数组的几种形式:
示例1:整型数组的定义和初始化
int a[5] = {1, 2, 3, 4, 5};
int arr[] = {1,2,4};
int arr[10] = {1,2};
示例2:字符数组的定义和初始化
char str1[5]=“hello”; //定义数组长度:30
char str1[30] = { 'L', 'e', 't', '\'', 's',' ', 'g', 'o', '\0' }; // 字符串长度:8;数组长度:30
char str1[30] = "Let's go"; // 字符串长度:8;数组长度:30
char str2[] = " to London!"; // 字符串长度:11 (注意开头的空格);数组长度:12
2、二维数组
定义公式:类型说明符 数组名[常量表达式][常量表达式];
例如:
int a[3][4];
char c[3][10];
C语言字符串数组可以修改吗
不可以。当您在源代码中编写“String”时,它将直接写入可执行文件中,因为该值需要在编译时知道(有工具可以将软件分开并找到其中的所有纯文本字符串)。
当你写char *a = "This is a string",“这是字符串”的位置在可执行文件中,而指向的位置在可执行文件中。可执行映像中的数据是只读的。
您需要做的(如其他答案所指出的)是在堆上或堆栈帧上的位置创建该内存。
如果声明一个本地数组,则在堆栈上为该数组的每个元素创建空格,并将字符串文字(存储在可执行文件中)复制到堆栈中的该空间。