一,scanf
C语言中的scanf函数的返回值类型是int,表示你正确输入参数的个数
代码如下:
#include <stdio.h>
int main()
{
int a = 0;
int b = 0;
int num = scanf("%d%d",&a, &b);
printf("num = %d\n", num);
return 0;
}
一,printf
C语言中的printf函数的返回值类型是int,表示你输入的字符个数
看代码:
#include <stdio.h>
int main()
{
printf("%d", printf("%d", printf("%d", 16)));
printf("\n");
return 0;
}
我们看一共有三个printf打印语句,那么就会打印输出三个结果。在printf函数中参数是以入栈的顺序进入的,所以我们要从右往左看,第一个printf语句是printf("%d",16);
所以它会直接打印出16这个结果,而它此时的返回值是这个16整型数的字符个数也就是2,所以第一个printf函数的返回值是2,所以第二个printf语句printf("%d", printf("%d", 16))
里的参数printf("%d", 16))
的结果就为2,所以第二个printf语句简化后为printf("%d",2)
。自然这个打印语句的结果就为2,此时它的返回值就是这个结果的字符个数也就是1,所以1就会作为第三个printf的参数传入其中,简化后就为printf("%d",1)
它的结果就为1。所以这就是为什么控制台最后打印的是1621