关于strcpy函数的问题?

如上图片,我在网上提了几个问题了解了strcpy函数,明明参数类型都是char类型的指针,为什么程序中的第一个参数是数组,第二个参数是字符串?

我看了书上的解释,书上这个函数的原型是strcpy(string1,string2),而且strcpy(mystring, "hello")这样写是正确的。




陪伴而非守候
浏览 761回答 3
3回答

撒科打诨

strcpy是将字符串的每个字符,写入到字符数组里。楼主要仔细研究下字符数组和字符串指针的区别,数组不等同与指针。你可以做个试验,看编译器执行哪个会报错,就更能知道字符串指针和字符数组的区别了。用字符数组:char szMyName[20] = {0};strcpy(szMyName, "123");用字符串指针:char* pMyName = "345";strcpy(pMyName, "123");

30秒到达战场

szMyName 和 "werd!#¥%" 没有区别 字符串作为参数传进去的就是字符串的首地址,就是这个指针本来就是只指向第一个字母,计算机会自动往后找直到找到 '\0'才会认为是字符串结束szName数组名也是一个字符类型的指针,如果是空的那么第一个就是'\0' 两个都是char*类型当然作为参数是直接拷贝到函数里面去执行所以没有区别,但是“!@#4”这样的是常量,你是不能改的

潇湘沐

char szMyName[20];改成char* szMyName;函数原型char *strcpy(char* dest, const char *src);
打开App,查看更多内容
随时随地看视频慕课网APP