簡體   English   中英

需要解釋C中“ puts”的輸出

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM