为第一年编程“101”考试做练习题。尝试一下,我不确定它是否可能。
Q值。 提供适合代表10名学生的作业标记的类型定义,并将所有标记初始化为零。
我解释说审查员希望def和初始化一起完成。否则我只是制作一个结构并在之后初始化它。
typedef int foobar[10]; //is accepted but is not initialised
typedef int foobar[10] = {0}; //Error " , expected"
typedef int foobar[10] = {0,0,0,0,0,0,0,0,0,0}; //Error " , expected"
是否有可能做我正在尝试的事情或者必须单独进行初始化?
注意:我之前发现的所有问题都与结构有关,我特意看了一个int数组。
答案 0 :(得分:2)
在定义中初始化int arrray的typedef?
...
提供适合代表10名学生的作业标记的类型定义,并将所有标记初始化为零。
标题和问题毫无意义或至少是不完整的,因为它没有提及什么来初始化。根据定义无法初始化类型。只能实例化“实例化”类型。所以要么这种分配是不可靠的,要么就是假定对所定义类型的隐式实例化。
然而,做后者,在C中,需要两个步骤来实现这一目标。
定义类型:
typedef int[10] Marks;
使用1中定义的类型定义变量并初始化它:
Marks marks = {0};
答案 1 :(得分:1)
给出适合表示赋值的类型定义 10名学生的分数和初始化(??)所有分数为零。
单词"已初始化"没有意义。我假设他们要求你"初始化"代替。
给出适合表示赋值的类型定义 标记为10名学生,初始化所有标记为零。
所以他们要求你做两件事,"给出一个类型定义"和"初始化所有标记",最好在一行代码(?)中。
什么是类型定义?是否有typedef
的内容?我猜不会!我理解为"定义类型的东西"。例如:
struct Marks {int marks[10];};
是的,这件事定义了一个丑陋的名字struct Marks
的类型。由于其中没有typedef
,您实际上可以在同一行代码中定义该类型的变量并初始化该变量:
struct Marks {int marks[10];} stuff = {{0}};
答案 2 :(得分:0)
C ++中很少有地方数据类型定义包含任何“值”数据。我只想到几个:
否则,数据和数据类型始终是分开的。您无法在定义中指定类型的初始值。
你的问题有些令人困惑:你说
typedef int foobar[10]; //is accepted but is not initialised
理解这只是一个数据类型定义;还没有什么可以初始化。
foobar x = {0};// this should compile and work fine.
但初始化是在实例化类型时完成的,而不是在类型定义中。