【发布时间】:2013-03-26 18:10:21
【问题描述】:
大家好,我只是想了解一些关键概念,并且已经完成了自己的研究,但有一些问题,如果有人可以检查它们是否正确,我将不胜感激。我正在为考试做复习,我们的教授告诉我们自己弄清楚……所以我做了,就这样:)
1:声明一个名为 thePointer 的指针,用于保存具有 10 个元素的数组中的一个元素的地址,称为 Pointed
int Pointed[10] = {};
int *thePointer = &Pointed[1];
在这方面需要帮助...
2:编写一个函数,该函数将接受数组的地址和数组中的元素数量,并使用信息将数组的每个元素初始化为零
void arrayFunction (int *array, int element)
for (x = 0; x < element; x++);
{
array[x] = 0;
}
3:创建一个包含表示以下内容的位的结构
--2 个字段,每个字段包含 4 位 BCD 数字,它们一起保存当前旋转计数(我称它们为 CRC1 和 CRC2) 电机方向:2位 速度:4位 故障条件:3位 将结构命名为 controlMotor
struct controlMotor{
unsigned char CRC1: 4;
unsigned char CRC2: 4;
unsigned int motorDirection: 2;
unsigned int speed: 4;
unsigned int faultCondition: 3;
};
-- 使用 typedef 来命名这个新的数据类型:statusDrive_t
typedef controlMotor statusDrive_t;
--创建名为marsDrive的结构数组来保存每6个驱动器的状态
statusDrive_t marsDrive[5] ={statusDrive_t.CRC1,statusDrive_t.CRC2,statusDrive_t.motorDirection,statusDrive_t.speed,statusDrive_t.faultCondition}
用最大值初始化数组第一个元素的每个字段
marsDrive[0].CRC1 = 15;
marsDrive[0].CRC2 = 15;
【问题讨论】:
-
尝试一次只问一个问题。或者,如果您的后续问题很少,那么至少尽量保持连贯性(尽可能相关)。
-
我认为你错过了 #2 的重点
-
同意迈克。您可能会考虑为#2 设置一个不同的开口,类似于
void arrayFunction(int arr[], size_t n) -
除了 Mike 的评论之外,您还可以像 #2 一样使用 arrayIndex 。循环的最后一次迭代将尝试访问不属于数组的元素。请记住,一个 10 元素数组的索引将在 [0..9] 范围内。因此,您需要使用 arrayIndex
-
结束不是一个真正的问题,因为它是由家庭作业分隔的几个问题。