为什么int和char用scanf都能输入中文不报错

#include<stdio.h>

int main()
{

 **int** a;                                                  这里的int为什么不换成char也能执行





float b,c,height,weight;

printf("请输入您的姓名:");
scanf("%s",&a);

printf("请输入您的身高(cm):");
scanf("%f",&b);

 printf("请输入您的体重(kg):");
scanf("%f",&c);

printf("==========正在为您转换==========\n");
height = b*0.3937;
weight = c*2.2046;
printf("小甲鱼的身高是%.2f(in),体重是%.2f(lb)。",height,weight);
return 0;

}

实际上字符的存储是通过存储对应的ascii实现的,所以使用int或者char承接并不影响最终结果
scanf接受字符串的时候实际上是将接受到的输入贴在了数组指向的内存中,只要你是用%s存储,后面再用%s读取,数组本身类型并不重要,重要的是数组占有的内存空间以及数组的首地址.
有帮助望采纳~