第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

有以下程序段 ,誰來幫我詳細(xì)講解一下???

char arr[]="ABCDE"; char *ptr; for(ptr=arr;ptr<arr+5;ptr++) printf("%s\n",ptr); 輸出結(jié)果是(D) D). ABCDE BCDE CDE DE E
查看完整描述

2 回答

?
慕哥9229398

TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超6個(gè)贊

字面字符串里頭 \開始的是一個(gè)轉(zhuǎn)義字符。
這里\0代表的是一個(gè)空字符。

sizeof()當(dāng)括號里頭是數(shù)組名的時(shí)候 它計(jì)算的是整個(gè)數(shù)組的長度。所以是7。

strlen()是計(jì)算字符串的長度。c里頭字符串是以空字符結(jié)尾作為字符串結(jié)束的標(biāo)志

所以strlen()在遇到空字符的時(shí)候就已經(jīng)認(rèn)為字符串結(jié)束了。所以這里它只認(rèn)為字符串的長度為2.是a和0。空字符不計(jì)算在內(nèi)。

int main() 

char a[7]="a0\0a0\0";
int i,j; 
i=sizeof(a); 
j=strlen(a); 
printf("%d %d\n",i,j);
printf("%s",a);
system("pause");
return 0;


printf()輸出字符數(shù)組
整個(gè)輸出是 
7 2  
a0

可以看到空字符是字符串結(jié)尾的標(biāo)志是很重要 因?yàn)楹芏嗪瘮?shù)是基于此來運(yùn)用的。


查看完整回答
反對 回復(fù) 2023-04-03
?
不負(fù)相思意

TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超10個(gè)贊

char arr[]="ABCDE"; //聲明一個(gè)字符數(shù)組
char *ptr; //聲明一個(gè)字符指針;
for(ptr=arr;ptr<arr+5;ptr++)  
printf("%s\n",ptr); 

第一次循環(huán),ptr指向數(shù)組首地址;從A開始打印;
第二次,ptr++指向數(shù)組首地址+1;從B開始打印;
...
依次推就能得出答案;

你一定會(huì)繼續(xù)問:那為什么不輸出ABCDE?
原因在于,printf函數(shù)輸出數(shù)組型字符串時(shí),從數(shù)組名標(biāo)記的地址開始讀取內(nèi)容,直到內(nèi)存中出現(xiàn)標(biāo)記為‘\0’的內(nèi)存單元才停止.
char arr[]="A\0B\0C\0D\0E\0"; 
char *ptr;
ptr = arr;
for(ptr=arr;ptr<arr+10;ptr++) 
printf("%s",ptr); 
將會(huì)得出ABCDE的打印

查看完整回答
反對 回復(fù) 2023-04-03
  • 2 回答
  • 0 關(guān)注
  • 234 瀏覽

添加回答

了解更多

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號