除了最后一句话,我明白了。
转换指定符"%d "跳过了可选的前导空格,并(尝试)将输入的其余部分转换为整数(如果没有发生错误)。
我理解了关于"%d "的观点。可选空格. 但是,什么是 "将输入的其余部分转换为整数" 是什么意思?我的意思是,如果输入本身是一个整数,它为什么要把输入转换成整数?
输入本身是一个整数吗?
不是,从键盘输入的是字符串(ascii),所以scanf将其转换为整数并存储在变量中。
请看这个。
#include <stdio.h>
int main()
{
char cnum[] = "123";
int num = 0;
int i=0;
while(cnum[i])
{
num*=10;
num+= cnum[i]-'0';
i++;
}
printf("%d",num); //This also converts int to string to print
return 0;
}
谢谢你