yuyangtian1000 发布留言 2008-8-29 17:37 strcpy()的括号中的是数组名,是否可以是指针?如题vfdff 发布留言 2008-8-29 17:40 字符串数组 或者 字符串指针都可以flyue 发布留言 2008-8-29 17:42 数组名不就是一个指针吗?p1s 发布留言 2008-8-29 17:46 数组名就是一个指针常量随心 发布留言 2008-8-29 17:48 第一个参数必须是数组名 下面的那样就是错的: #include #include
int _tmain(int argc, _TCHAR* argv[]) { char *s1 = "sss", s2[200]="dd"; strcpy(s1, s2); return 0; }
[ 本帖最后由 随心 于 2008-8-29 17:49 编辑 [/it]]yuyangtian1000 发布留言 2008-8-29 17:48 汗,学二维数组与指针昏了头了,总记得输出指向二维数组的指针的内容用'*"flyue 发布留言 2008-8-29 17:50 LS的,代码应该这样写吧: int _tmain(int argc, _TCHAR* argv[]) { TCHAR *s1 = _T("sss"), s2[200] = _T("dd"); _tcscpy(s1, s2); return 0; }随心 发布留言 2008-8-29 17:54 小程序,我一般没有unicode习惯 不过项目大的时候应当有这种意识 谢谢提醒yuyangtian1000 发布留言 2008-8-29 17:54 _TCHAR* argv[]这个是什么东西。谁能告诉我??随心 发布留言 2008-8-29 17:55 _tmain我是直接从VS里拷过来的flyue 发布留言 2008-8-29 17:55 你打开tchar.h看看就知道了,是为了便于程序在MBSC和Unicode编码之间转换的中间模式flyue 发布留言 2008-8-29 17:56 在工程设置里可以很容易设置MBCS还是Unicodeyuyangtian1000 发布留言 2008-8-29 17:57 偶用的是wintcflyue 发布留言 2008-8-29 17:58 哦,没用过。不过我和 随心 都用的是Visual C++.netqfyzy 发布留言 2008-8-29 18:41 回复 5# 随心 的帖子感觉第一个是指针也是可以的 char s[200],*s1 =s, s2[200]="dd"; strcpy(s1, s2); return 0; 应该可以flyue 发布留言 2008-8-29 18:46 那你运行试试,绝对会错qfyzy 发布留言 2008-8-29 18:51 回复 16# flyue 的帖子我不知道LS用的是什么编译器DEV C++可以通过。结果也没错。 我用VC6也试验了下,没错。 希望LS看看随心 发布留言 2008-8-29 19:06 你让s1=s,也就是说它的内存地址还是在堆上,所以不会出错. 而5楼的那段代码s1定义的是一个常量,它是地址是在栈上,是不可访问的,它肯定是会出错的.随心 发布留言 2008-8-29 19:07 一般错误提示会是这样的一种意思:***使用了,但没有定义它. 也就是说在堆中找不到它的地址.flyue 发布留言 2008-8-29 19:07 我说的是随心的那段代码会错
[1] [2] 下一页 特别说明:如网页特效代码中有引用图片文件等,请自己下载到本地调试! |