【发布时间】:2021-12-20 01:34:15
【问题描述】:
不确定我的措辞是否正确,我只是想知道为什么会打印出“Johnathan”:
#include <stdio.h>
int main()
{
char personName[20] = "Johnathan";
printf("%s", personName);
return 0;
}
虽然不是这样:
#include<stdio.h>
int main()
{
char personName[20];
personName[20] = "Johnathan";
printf("%s", personName);
return 0;
}
我需要能够将字符串分配给其第一个实例之外的已声明数组(即 personName)。
【问题讨论】:
-
这些是语言的规则。您可以对字符串 (
char name[20] = "John";) 进行初始化,但不能直接赋值(尽管strcpy(name, "Mary");有效)。 -
顺便说一句:
personName[20]不存在。数组personName有20 个元素,索引从0到19。 即使它存在,它也会有char类型,并且不可能单独保存一个字符串。
标签: arrays c initialization variable-assignment string-literals