如上圖片,我在網上提了幾個問題了解了strcpy函數,明明參數類型都是char類型的指針,為什么程序中的第一個參數是數組,第二個參數是字符串?我看了書上的解釋,書上這個函數的原型是strcpy(string1,string2),而且strcpy(mystring, "hello")這樣寫是正確的。
3 回答

撒科打諢
TA貢獻1934條經驗 獲得超2個贊
strcpy是將字符串的每個字符,寫入到字符數組里。
樓主要仔細研究下字符數組和字符串指針的區別,數組不等同與指針。
你可以做個試驗,看編譯器執行哪個會報錯,就更能知道字符串指針和字符數組的區別了。
用字符數組:
char szMyName[20] = {0};
strcpy(szMyName, "123");
用字符串指針:
char* pMyName = "345";
strcpy(pMyName, "123");

30秒到達戰場
TA貢獻1828條經驗 獲得超6個贊
szMyName 和 "werd!#¥%" 沒有區別 字符串作為參數傳進去的就是字符串的首地址,就是這個指針本來就是只指向第一個字母,計算機會自動往后找直到找到 '\0'才會認為是字符串結束
szName數組名也是一個字符類型的指針,如果是空的那么第一個就是'\0' 兩個都是char*類型
當然作為參數是直接拷貝到函數里面去執行所以沒有區別,但是“!@#4”這樣的是常量,你是不能改的

瀟湘沐
TA貢獻1816條經驗 獲得超6個贊
char szMyName[20];改成char* szMyName;
函數原型char *strcpy(char* dest, const char *src);
- 3 回答
- 0 關注
- 830 瀏覽
添加回答
舉報
0/150
提交
取消