%d 格式化输入输出的格式控制,用来表示数据输入输出的格式,具体可自行搜索,不是一两句说得清楚的。
&y 是取止操作,获取变量y在内存中的地址。
scanf("%d", &y)表示从标准输入(控制台)获得一个整数,并将这个整数写入变量y对应的内存。
printf("%d", y)表示将y转为整数输出。
格式说明由“%”和格式字符组成,如%d%f等。它的作用是将输出的数据转换为指定的格式输出。格式说明总是由“%”字符开始的。不同类型的数据用不同的格式字符。
格式字符有d,o,x,u,c,s,f,e,g等。
如
%d整型输出,%ld长整型输出,
%o以八进制数形式输出整数,
%x以十六进制数形式输出整数,
%u以十进制数输出unsigned型数据(无符号数)。
%c用来输出一个字符,
%s用来输出一个字符串,
%f用来输出实数,以小数形式输出,
%e以指数形式输出实数,
%g根据大小自动选f格式或e格式,且不输出无意义的零。
scanf(控制字符,地址列表)
格式字符的含义同printf函数,地址列表是由若干个地址组成的表列,可以是变量的地址,或字符串的首地址。如scanf("%d%c%s",&a,&b,str);
注意,scanf是直接写内存,不转换,如果格式控制符与变量类型不兼容,会出现意想不到的结果。
如果是初学者不要纠结这些,记住4个基本的就够了%d(整数) %f(实数) %s(字符串) %c(字符),不要被细枝末节阻挡,大步向前。