【发布时间】:2018-05-28 22:29:36
【问题描述】:
我在 C 中使用 typedef 如下:
typedef char string[20];
然后我创建了一个名为“writeElement”的函数,定义如下:
void writeElement(string * string, int position, char letter){
string[position]=letter;
}
为什么会出现错误:
"赋值给数组类型的表达式"
我只是无法理解。
【问题讨论】:
-
因为
string[p]的类型是char[20] -
将数组隐藏在 typedef 后面通常是个坏主意,所以很混乱。考虑一些变体: typedef struct { char data[20]; } string_t;
-
关于:
typedef char string[20];这只是说,当源代码包含 "string[20]` 以将其替换为char。这不是你想要做的。
标签: c arrays string variable-assignment typedef