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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

c++中關(guān)于memcpy函數(shù)的問題,希望可以得到答案,謝謝 ?。。。?!

c++中關(guān)于memcpy函數(shù)的問題,希望可以得到答案,謝謝 ?。。。?!

C++
慕先生7590634 2016-09-27 23:58:08
void *memcpy1(void *desc,const void * src,size_t size){?if((desc == NULL) && (src == NULL))?{??return NULL;?}?unsigned char *desc1 = (unsigned char*)desc;?unsigned char *src1 = (unsigned char*)src;?while(size-- >0)?{??*desc1 = *src1;??desc1++;??src1++;?}?return desc;}int _tmain(int argc, _TCHAR* argv[]){?int dest[2] = {0};?const char src[5] = "1234";?memcpy1(dest,src,sizeof(src));?printf((char *)dest);?int m = -1;?return 0;}上面這行代碼可以運行但是,為什么我把int dest[2] = {0};const char src[5] = "1234";這兩行代碼改成string *p="aaaa";和string *q="bbbbbb",就不行了,希望各位朋友可以解答得詳細(xì)一點,腦子太蠢。。不好使
查看完整描述

2 回答

?
onemoo

TA貢獻(xiàn)883條經(jīng)驗 獲得超454個贊

memcpy1函數(shù)的?desc 和 src 參數(shù)類型是指針,函數(shù)的行為就是從 src 所指的內(nèi)存處復(fù)制size個字節(jié)到 dest 所指的內(nèi)存。

int dest[2] = {0} 和?const char src[5] 這兩句聲明了兩個數(shù)組 dest 和 src,數(shù)組本身當(dāng)然就是一段連續(xù)的內(nèi)存。

而且數(shù)組在用作右值時——傳參數(shù)就是此種情況——會自動轉(zhuǎn)為指向其首元素的指針,也就是說傳入memcpy1的 dest 和 src 就是指向它們這兩段內(nèi)存的指針,完全符合函數(shù)的參數(shù)要求。 而且第三個參數(shù)是就是src數(shù)組的size,所以函數(shù)可以正確執(zhí)行。


你修改的代碼是將 dest 和 src 的類型換成了string指針。 但你這兩句定義p和q的語句不符合語法!

以 string *p = "aaaa"; 為例: p是string指針。等號右側(cè)的"aaaa"是字符串字面量,本身可以當(dāng)作數(shù)組,所以在這里也會轉(zhuǎn)為指針,但它是const char指針! ?const char* 不能自動轉(zhuǎn)換為 string*,所以無法作為p的初值!編譯器即報錯。

q也是同理。

查看完整回答
1 反對 回復(fù) 2016-09-28
?
慕仙1118221

TA貢獻(xiàn)5條經(jīng)驗 獲得超0個贊

void函數(shù)不能有返回值吧

查看完整回答
反對 回復(fù) 2016-09-29
  • 2 回答
  • 0 關(guān)注
  • 1577 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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