在c中打印数组元素时出现意外输出

Nul*_*teя 0 c arrays

我正在创建一个简单的c程序,下面的程序输出应该是2但我得到50不知道为什么(我是c的新手)请让我知道我在哪里失踪

#include<stdio.h>
int main(int argc, char** argv) {
   int a[4]={'1','2','2','\0'};
   printf("The value of a is %d",a[1]);
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

这是实时输出

sim*_*onc 8

您使用ascii字符代码初始化了数组. '2'整数值为50.

将数组初始化为

int a[4]={1,2,2,0};
Run Code Online (Sandbox Code Playgroud)

如果你想要它包含整数1,2,2,0.要么

#include<stdio.h>
int main(int argc, char** argv) {
   char a[4]="121";
   printf("The value of a is %c",a[1]);
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

如果你想要一个可以被视为字符串的字符数组.(注意这里使用%c格式说明符.)