在C中跨文件访问数组

时间:2013-07-31 12:44:21

标签: c arrays pointers

我正在尝试跨文件访问数组,比如这样;

int option[NUMBER_OF_OPTIONS];
...
addition(&option[0], num1, num2); 
...
printf("%d", option[0]);

那是第一个(主要)文件

,第二个是这样的;

void addition(int * option, unsigned number1, unsigned number2)
{
int total = number1 + number2;
...
*option ++;
}

这样的事情。不要担心添加方法。

问题是printf方法总是打印0,就像* option ++;永远不会执行/阅读。

我该如何解决这个问题?

顺便说一下,我在“* option ++;”中收到警告文件说:警告:未使用计算值。

如何解决这个问题?

谢谢!

3 个答案:

答案 0 :(得分:5)

此:

*option++;

不符合您的想法。它实际意味着:

*(option++);

首先将增量运算符应用于option指针,然后取消引用它。效果是:

option++;
*option; // This is a statement with no effect, hence the warning.

你需要这个:

(*option)++;

答案 1 :(得分:2)

++的优先级高于*。因此*option ++;*(option ++);相同,后者不执行任何操作(这就是您收到警告的原因)。

试试这个:

(*option) ++;

答案 2 :(得分:1)

*++更宽松,所以*option ++ = *(option++);要修改数组中的值,需要编写(*option)++;也就是说,后缀增量的优先级高于取消引用运算符