“第一个参数是一个整数数组,第二个参数是一个整数,即数组中元素的数量。该函数不返回值。”
该函数无意返回任何内容,因此我已返回void。我可以很好地创建数组,但是不确定是否可以创建直接影响第一个参数数组大小的整数参数。
void printArray(int x[],int arrayCount);
“第一个参数是一个整数数组,第二个参数是一个整数,即数组中元素的数量。该函数不返回值。”
该函数无意返回任何内容,因此我已返回void。我可以很好地创建数组,但是不确定是否可以创建直接影响第一个参数数组大小的整数参数。
void printArray(int x[],int arrayCount);
这是有效的代码
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);
}