首页 > 解决方案 > C 程序:数组示例

问题描述

我在某处读到我应该能够像这样初始化数组。但为什么它不起作用。

#include<stdio.h>

main()
{
   char s[10];
   s[10]="pen";
   printf("%s\n",s[10]);    
}

输出:空

标签: carrayscharinitializationstring-literals

解决方案


这是初始化:char s[10] = "pen";
这是赋值(和无效的语法):s[10]="pen";

语法相似但术语不同。初始化与变量声明一起完成。一般可以在程序启动前进行初始化。例如,如果您编写const char s[10] = "pen";了 ,则可以在程序启动之前将字符串预加载到变量中。

由于s[10]="pen";C 无效,但您的编译器通过警告(您可能没有阅读)让它通过,请考虑使用更严格的编译器设置进行编译。在 gcc 上,这意味着使用 编译-pedantic-errors -Werror,我强烈建议初学者使用。


推荐阅读