能够定义一个数组,例如
int a[] = {1,2,3};
非常方便,但是,数组 a 是一个 r 值,因此我不能随后更改 a 中的值,例如
a[] = {4,5,6};
想要这样做的背景是编写一堆单元测试,我在其中将数组输入函数并测试输出。我正在使用不同的输入对同一个函数进行测试,并且希望避免我的输入数组必须具有唯一的名称,例如我必须这样做:
int test1_a[] = {1,2,3};
/* calls to functions */
int test2_a[] = {4,5,6};
/* calls to functions */
另外,如果我想将一个指向数组的指针传递给一个函数,我必须像这样第一次转换它:
int a[] = {1,2,3};
int *b = a;
my_func(&b);
像这样传递一个指向 r 值的指针是行不通的:
my_func(&a);
我的问题是是否有任何其他方法可以轻松初始化一组值而不受这些限制的影响?(特别是为了使编写许多类似的单元测试变得容易,而每个测试都没有一组唯一的数组名称)