若有定義:char *x="abcdefghi";,以下選項中正確運用了strcpy函數(shù)的是______。
若有定義:char *x="abcdefghi";,以下選項中正確運用了strcpy函數(shù)的是______。
A.char y[10]; strcpy(y,x[4]);
B.char y[10]; strcpy(++y,&x[1]);
C.char y[10],*s; strcpy(s=y+5,x);
D.char y[10],*s; strcpy(s=y+1,x+1);
正確答案:D解析:選項A中x[4]是取字符e,也就是將字符復(fù)制到y(tǒng)中,strcpy實現(xiàn)的是地址的復(fù)制所以選項A錯誤;選項B中++y是錯誤的,不允許對常量進行自加運算(y是—個確定的地址值),所以選項B錯誤;選項C指針變量s指向了y向后的第5位,則存放x時會出現(xiàn)越界問題,所以選項C錯誤;選項D中,指針變量s指向了y向后的第—位,此時s可存放數(shù)據(jù)的長度為9,而地址“x+1”起的字符串的地址長度也剛好為9(包括“\0”),所以開始復(fù)制不會出現(xiàn)地址越界問題,故選項D正確。
詞條內(nèi)容僅供參考,如果您需要解決具體問題
(尤其在法律、醫(yī)學(xué)等領(lǐng)域),建議您咨詢相關(guān)領(lǐng)域?qū)I(yè)人士。