int main (void){
const int y = 99;
printf("%d\n", printf("y = %d", y));
}
此程序打印" y = 996",我希望有助于理解。
首先,
printf("y = %d", y)
打印出y = 99
所以最终表达的其余部分是:
printf("%d\n", "y = 99");
但是这应该是无效的,因为%d
需要一个数字,而不是charArray?
答案 0 :(得分:2)
Html.send
函数返回打印的字节数。该值是传递给第二次调用的值。
内部通话打印printf
,即6个字符。因此外部调用接收6作为第二个参数:
y = 99
因此输出为printf("%d\n", 6);
。
答案 1 :(得分:2)
让我举一个简单的例子来澄清你的怀疑:
示例:
void main(void)
{
int b=printf("hellow");
printf("%d",b);
}
输出
6
printf(" message")是一个预定义的方法,它返回" no。消息中出现的字符" 如上例所示。
你编码:
int main (void){
const int y = 99;
printf("%d\n", printf("y = %d", y));
}
注意:打印消息后printf()始终返回int值,该值不是字符,因为printf()的返回类型是int类型。
步骤1:内部printf()函数首先打印99。
步骤2:执行后返回6,否则为。消息中的字符。
消息是" y =%d"
步骤3:6由外部printf()函数保存为: -
printf("%d",6);
因此,它同时提供输出:
996
答案 2 :(得分:1)
虽然printf
会将字符串打印到stdout
,但返回的内容是一个整数,表示打印出来的字符数。
对printf
,printf("y = %d", y)
的嵌套调用打印出99并返回6,因为字符串"y = 99"
长度为6个字符,这使外部调用printf
,它将嵌套调用的返回值作为参数获取,产生输出6,最终输出为996。