#include
int main(void)
{
int number[40];
scanf("%s", number);
printf("%d", number[0]);
return 0;
}
数字以字符格式存在数组里,既然字符以数字的形式存储,那为何用%d输出是垃圾值呢?用%c却是正常的
字符格式和整型是不同的,字符0对应着48,字符1对应着整数49....
字符‘0’,对应0x30,
\0 对应NUL 控制字符(字符串结束符号)值为0
%d 输出 '0' --->48,\0--->0
%c 输出 ‘0’--->0,\0对应空格或者乱码.
int number[40]; //每个整形变量占4个字节
scanf("%s", number);//按字符串读入,每个字符占1个字节,输入123456
printf("%d", number[1]);//你改为number[1]试试,输出是5
int number[40]; //每个整形变量占4个字节
scanf("%s", number);//按字符串读入,每个字符占1个字节,输入123456,1234存在了number[0]开始的4个字节,65存在了number[1]开始的2个字节
printf("%d", number[1]);//你改为number[1]试试,输出是5