C 为什么以下程序有效?为什么它输出;世界你好;?
以下程序的输出是什么C 为什么以下程序有效?为什么它输出;世界你好;?,c,C,以下程序的输出是什么 #include<stdio.h> void main() { printf("hello",printf("world")); } #包括 void main() { printf(“你好”,printf(“世界”); } 打印world的printf函数以C的形式首先运行,直到对其所有参数求值后才能执行第一个printf(因为它对主参数之前提供的额外参数求值)这意味着它在打印'hello'之前等待打印'world',打印world的函数首先运行,
#include<stdio.h>
void main()
{
printf("hello",printf("world"));
}
#包括
void main()
{
printf(“你好”,printf(“世界”);
}
打印world
的printf
函数以C
的形式首先运行,直到对其所有参数求值后才能执行第一个printf
(因为它对主参数之前提供的额外参数求值)这意味着它在打印'hello'
之前等待打印'world'
,打印world
的函数首先运行,因为C
无法执行第一个printf
,直到对其所有参数求值(因为它对主参数之前提供的额外参数进行求值)这意味着它在打印文档中的“hello”
之前等待打印'world'
:
如果参数少于格式所需的参数,则行为为
未定义。如果参数多于格式所需的参数,则
对无关参数进行评估并忽略
程序的输出为:
worldhello
第一个printf的参数是:
printf(“世界”)
由于参数是一个函数,因此该函数将被称为生成字:
word
然后首先printf
将打印hello
worldhello
试试这个:
#include<stdio.h>
int main(void)
{
printf(" hello! %d",printf("world"));
return 0;
}
如果
printf
成功,则返回写入的字符总数。如果失败,则返回负数。来自以下文档:
如果参数少于格式所需的参数,则行为为
未定义。如果参数多于格式所需的参数,则
对无关参数进行评估并忽略
程序的输出为:
worldhello
第一个printf的参数是:
printf(“世界”)
由于参数是一个函数,因此该函数将被称为生成字:
word
然后首先printf
将打印hello
worldhello
试试这个:
#include<stdio.h>
int main(void)
{
printf(" hello! %d",printf("world"));
return 0;
}
如果
printf
成功,则返回写入的字符总数。如果失败,则返回一个负数。实际上,我认为它是有效的。如果参数超过格式要求,则对无关参数进行求值并ignored@Kevin它实际上是有效的,我删除了我的评论,说它是有效的不..@EugeneSh。我也:)参考一下,有很多理由可以看出为什么void main()
是可疑的。事实上,我认为它是有效的。如果存在的参数多于格式所需的参数,则对无关的参数进行求值并ignored@Kevin它实际上是有效的,我删除了我的评论,说它不是..@EugeneSh。我也是:)参考一下,void main()
有很多可疑的原因。