输入字符串China,分析程序改动后显示结果变化的原因是什么?

#include
int main{
char c[5];int i;

  scanf("%s",c); 

  for(i=0;i<=1;i++)

  printf("%c",c[i]); printf("\n" );return 0;

}
输出结果是Ch

#include
int main(){
int(这里char改成了int) c[5]; int i;

  scanf("%s",c);

  for(i=0;i<=1;i++)

  printf("%c",c[i]);printf("\n");return 0;

}这里输出结果是Ca,小白想知道一下是为什么

一张图说明一切;

图片说明

你只是输出了俩个 int 是四字节 char 是1字节 所以int 类型 显示ca

首先,定义的变量要初始化
然后,int一般为32位,char为8位,数组下标的话是按照你定义的类型来计算的。 scanf的话,只拿到了个地址,所以按char的大小存放。