3 回答

TA貢獻(xiàn)1934條經(jīng)驗(yàn) 獲得超2個(gè)贊
strcpy是將字符串的每個(gè)字符,寫入到字符數(shù)組里。
樓主要仔細(xì)研究下字符數(shù)組和字符串指針的區(qū)別,數(shù)組不等同與指針。
你可以做個(gè)試驗(yàn),看編譯器執(zhí)行哪個(gè)會(huì)報(bào)錯(cuò),就更能知道字符串指針和字符數(shù)組的區(qū)別了。
用字符數(shù)組:
char szMyName[20] = {0};
strcpy(szMyName, "123");
用字符串指針:
char* pMyName = "345";
strcpy(pMyName, "123");

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超6個(gè)贊
szMyName 和 "werd!#¥%" 沒(méi)有區(qū)別 字符串作為參數(shù)傳進(jìn)去的就是字符串的首地址,就是這個(gè)指針本來(lái)就是只指向第一個(gè)字母,計(jì)算機(jī)會(huì)自動(dòng)往后找直到找到 '\0'才會(huì)認(rèn)為是字符串結(jié)束
szName數(shù)組名也是一個(gè)字符類型的指針,如果是空的那么第一個(gè)就是'\0' 兩個(gè)都是char*類型
當(dāng)然作為參數(shù)是直接拷貝到函數(shù)里面去執(zhí)行所以沒(méi)有區(qū)別,但是“!@#4”這樣的是常量,你是不能改的

TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超6個(gè)贊
char szMyName[20];改成char* szMyName;
函數(shù)原型char *strcpy(char* dest, const char *src);
- 3 回答
- 0 關(guān)注
- 827 瀏覽
添加回答
舉報(bào)