注册 登录
编程论坛 C++教室

[求助] 初学c++的菜鸟,想知道为什么不能这样赐值[已解决]

TrC7NiMj2G87 发布于 2007-05-08 12:37, 781 次点击
char *temp = "Untitled"; cout << temp; char ch[40]; ch = temp;
编译器提示说  incompatible types in assignment of `char*' to `char[40]' 想知道为什么不能这样做.

[此贴子已经被作者于2007-5-8 16:56:13编辑过]

7 回复
#2
I喜欢c2007-05-08 12:52
ch又不是指针...
#3
TrC7NiMj2G872007-05-08 12:53


要怎么改啊?





#4
TrC7NiMj2G872007-05-08 12:55
以下是引用su11237880在2007-5-8 12:52:30的发言:
你想做什么啊```



我想把指针指向的字符串给数组



#5
TrC7NiMj2G872007-05-08 13:11
回复:(su11237880)#includeusing ...
struct cb{        char maker[40];        double weight;        int calorie;        }; void got(cb &a, char *str, double wei, int cal) {           a.maker = str;
     a.weight = wei;      a.calorie = cal; }
像一个这样的函数,接受一个Char指针,然后把指针指向的字符串给CB结构中的maker[40]数组, 请各位帮我一下把,....m(_ _)m ---------- 因为在某书上看到"在多数情况下,C++将数组名视为数组第一个元素的地址." 才想出了上面这么郁闷的代码............(─.─||||








[此贴子已经被作者于2007-5-8 13:12:09编辑过]


#6
aipb20072007-05-08 13:18

char型数组,数组名是一个指针,指向数组的第一个元素。

所以可以把char数组赋值给一个char型指针。但是反过来是不成立的,他们是两种不同的类型!

#7
TrC7NiMj2G872007-05-08 13:22
回复:(aipb2007)char型数组,数组名是一个指针,指...

如果我想编写像上面那样的一个函数,应该怎么办呢?






#8
aipb20072007-05-08 13:27
这还不简单,你把结构体中的maker改为char*不就完了!


还有,为什么不爱用string呢?
1