我一般来说对C语言还很陌生,但是具有基本的代码知识。我很难将指针指向我的头,想知道是否有人对它们有任何好的思考方式(例如正确地使用“ *”和“&”)。我正在尝试为控制台输入创建头文件,并且这样做是返回指向答案数组的指针。我想使头文件对最终用户来说易于使用。
这是我所拥有的并且可以工作,但是有一种方法可以消除printf(“%s \ n”,list [* i])中的指针(*);通过修改for循环属性?
class Matrix2d
{
public:
char keys [ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
};
最终解决方案:
int *pointer;
char *list[] = {"Hello1", "Hello2", "Hello3", "Hello4", "Hello5", NULL};
pointer = multiChoice(list);
printf("Choices:\n");
for (int *i = pointer; *i >= 0; i++)
{
printf("%s\n", list[*i]);
}
答案 0 :(得分:-5)
您可能知道,指针存储例如变量和函数的地址。在这种情况下,“ *”运算符用于两种不同的操作。就像使用 pointer 一样声明指针。另一个操作是解引用,该操作返回存储在指针指向的地址处的值。
我不知道 multiChoice()的作用,所以我无法消除 pointer 指针变量。但实际上,由于简单,我会在初始化中重写 i 。一次取消引用 pointer 而不是三次取消引用 i 较短,可读性更高。
for (int i = *pointer; i >= 0; i++)
{
printf("%s\n", list[i]);
}