[英]Need explanation for output of “puts” in C
我正在尋找此代碼段輸出的解釋。 我已經搜索了Internet,但是找不到令人滿意的解釋。
main()
{
char x[10]="abcdefg" ;
puts(&x[4]) ;
}
執行此代碼后,我得到“ efg”作為輸出。
你能解釋一下這個輸出嗎? 如果此平台不解決此類問題,我們深表歉意。
&x [4]是字符數組x的元素4的內存中的地址。 這意味着看跌期權正在接收“ efg”作為輸入。
根據C11
,第§7.21.7.9章
int puts(const char *s);
puts
函數將s指向的字符串寫入stdout
指向的流,並在輸出后附加換行符。 不寫入終止空字符。 [...]
因此,在您的情況下,您要傳遞數組x
中的第五個元素的地址(是的,C數組使用基於0的索引),並傳遞該字符串中的其余元素,直到輸出終止null為止。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.