我正在寻找此代码段输出的解释。我已经搜索了互联网,但找不到令人满意的解释。
main()
{
char x[10]="abcdefg" ;
puts(&x[4]) ;
}
执行此代码后,我得到“ efg”作为输出。
能否请您解释一下此输出? 如果此平台不解决此类问题,我们深表歉意。
答案 0 :(得分:3)
&x [4]是字符数组x元素4的内存中的地址。 这意味着看跌期权正在接收“ efg”作为输入。
答案 1 :(得分:1)
根据C11
,第7.21.7.9章
int puts(const char *s);
puts
函数将s指向的字符串写入到stdout
指向的流中,并在输出后附加换行符。终止的空字符不是 书面。 [...]
因此,在您的情况下,您要传递数组x
中第五个元素的地址(是的,C数组使用基于0的索引),以及该字符串中的其余元素,直到终止为止将输出null。