是否可以创建一个函数,该函数将数组作为一个参数,将第二个参数用作参数1的大小,即数组?

“第一个参数是一个整数数组,第二个参数是一个整数,即数组中元素的数量。该函数不返回值。”

该函数无意返回任何内容,因此我已返回void。我可以很好地创建数组,但是不确定是否可以创建直接影响第一个参数数组大小的整数参数。

void printArray(int x[],int arrayCount);
ad3867 回答:是否可以创建一个函数,该函数将数组作为一个参数,将第二个参数用作参数1的大小,即数组?

这是有效的代码

MEMORY equ 30h ;pointer to ram SLOTNO equ 8h ;2-bit Slot unit we want mov A,#SLOTNO rrc A jnc noc xch A,R2 rl A rl A xch A,R2 noc: rrc A jnc noc2 xch A,R2 swap A xch A,R2 noc2: add A,#MEMORY mov R1,A ;R1 = memory pointer + (slot # / 4) mov A,@R1 orl A,R2 ;put the 2 bits in mov @R1,A

尽管第二个参数最好使用类型void printArray(int x[],int arrayCount);来保存第一个参数(数组)元素的数量。

,

这是C语言中的常见模式。该函数采用数组(或指针)以及“ size”参数。

printArray的实现中,您实际上并没有创建数组,它已经传递给您:

您可以按以下方式测试代码

 void printArray(int x[],int arrayCount)
 {
      // your code goes here
 }


 int main(int argc,char** argv)
 {
      int testArray1[] = {8,6,7,5,3,9};
      int count1 = sizeof(testArray1) / sizeof(testArray1[0]);  // 7

      printArray(testArray1,count1);

      return 0;
 }
,
  

是否可以创建一个函数,将一个数组作为一个参数,将另一个参数保存为参数1的大小-数组?

是,不是。

是的,下面的代码可以。但是不,x不是数组。函数参数不能是C中的 array -即使int x[]看起来像一个。对于函数参数,int x[]int *x相同。 x指针-指向int的指针。

void printArray(int x[],int arrayCount);

使用中这不是问题。考虑以下。在许多情况下,数组会转换为数组第一个元素的地址。这里,fred被转换为&fred[0]的第一个参数printArray()

int fred[42];
printArray(fred,42);

printArray()的示例实现显示参数x的大小。请注意,它是指针的大小。

void printArray(int x[],int arrayCount) {
  printf("Size of x %zu\n",sizeof x);
}
本文链接:https://www.f2er.com/3130224.html

大家都在问