请教char[]和char*的细微差别

MrYoucheng 2005-01-13 10:56:44
#include <iostream>
using namespace std;
char *mystrcpy(char *destination, const char *source)
{
while(*destination++=*source++);
return (destination-1);
}

int main()
{

char c[]="wawa"; //如果换成char c*="wawa"就运行出错,编译没问题 有什么区别嘛?
char d[]="lala"; //如果一定要用char*改怎么改呢

mystrcpy(c,d); //而且函数的返回值申明的也是char*啊
cout<<c;

return 0;
}

...全文
77 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
MrYoucheng 2005-01-13
  • 打赏
  • 举报
回复
真的很简单 谢谢
dongyuanzhang 2005-01-13
  • 打赏
  • 举报
回复
对呀,这就是c语言的语法。
char *c="wawa";
此时c就是const char*,当然是不能被改变的。

char c[];c在这就是可以理解为一般指针,但不是const型.
haozi112 2005-01-13
  • 打赏
  • 举报
回复
呵呵,楼主,你确实应该好好学习一下c的教程了,char* p 表示p是一个char类型的指针变量,这个变量指向一个空间,而直接定义的时候,这个空间是没有分配的,也就是说,你需要为这个指针分配一个空间,而 char p[]表示的是一个数组,这个数组的长度是没有限定的,你必须在定义的时候初始化,举个例子,如果你一定要用char* p的话,可以这样:
char* p = NULL;
p = new char[100];
strcpy(p,"this is a test");
注意一定要在使用完成后delete [] p;
MrYoucheng 2005-01-13
  • 打赏
  • 举报
回复
to xiaolizi(小李子)
如果你连代码都没有跑过 请不要ggyy
我要把d复制到c 还要把c定义成const?
按照您的说法 g++回答如下
D:\Program Files\Dev-Cpp\myWork\test\strcpy.cpp invalid conversion from `const char*' to `char*'
xiaolizi 2005-01-13
  • 打赏
  • 举报
回复
const char* c= "wawa";
建议楼主先看C语言的教程

64,682

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧