问题是:声明一个大小为2的“char”类型的数组,称为“字母”。将变量“alpha”指定为数组“字母”的第一个元素。C赋值数组错误
我都尝试:
char letters[1];
letters = alpha;
和
char letters[] = {alpha};
程序口口声声说这两个答案都是错的。我究竟做错了什么?或者是检查系统出错?
问题是:声明一个大小为2的“char”类型的数组,称为“字母”。将变量“alpha”指定为数组“字母”的第一个元素。C赋值数组错误
我都尝试:
char letters[1];
letters = alpha;
和
char letters[] = {alpha};
程序口口声声说这两个答案都是错的。我究竟做错了什么?或者是检查系统出错?
在第一个例子你是不是定义大小2,但大小1,和数组(这是实际的错误),您是分配char类型的变量数组,而不是数组的位置...
一个简单的方法:
char letters[2]; // array of size 2
char alpha = letters[0]; // assigning the first position of letters array to the alpha variable
有趣的是:这将'letters'的第一个元素赋值给'alpha',但这个问题在我看来似乎是要求相反的操作(尽管我给你的措辞是模棱两可的 - 但这些尝试肯定意味着相反的):给定'char alpha ='x';'然后通过初始化'char letters [2] = {alpha,'\ 0'};'或者赋值'char letters [2] =“”;字母[0] = alpha;'。 –
那么,用一个1而不是2应该会让你失望。如果你想分配一个字母元素,你可能需要说的不仅仅是名字。
有在你的答案几个错误:
您需要添加初始化,以避免不确定的行为:
char letters[2] = {'x', 'y'};
char alpha = letters[0];
是阿尔法单个字符?使用'letters [0] = alpha;' – edwardmp
您似乎误解了从零*计数的应用程序*设置数组的大小。在一些参考资料中阅读关于数组的介绍性章节是一个好主意。 – dmckee