将一个指向数组a的指针赋给数组B,在C中应该怎么写
时间: 2024-09-12 20:15:01 浏览: 53
在C语言中,直接将一个指向数组的指针赋值给另一个数组变量是不可能的,因为数组名本质上是指向数组第一个元素的指针,而不是数组本身。但是,你可以将指向数组A的指针传递给函数,然后在该函数内部操作B数组。如果你想要在函数内部改变操作的对象,通常会采用传引用的方式。
例如,假设你有两个函数,一个用于处理数组,另一个接受指针作为输入:
```c
void processArray(int *arr, int size) {
int B[size]; // 假设这里B是你希望操作的新数组
// 这里对B进行操作,实际上是在操作arr所指向的内容
for (int i = 0; i < size; i++) {
B[i] = arr[i];
}
}
int main() {
int A[] = {1, 2, 3, 4, 5};
int size = sizeof(A) / sizeof(A[0]);
processArray(A, size); // 将A数组的指针传递给processArray
// 主函数中不会看到B的变化,但可以在处理函数中访问到
for (int i = 0; i < size; i++) {
printf("Element %d of A and B is: %d\n", i, A[i]); // 输出A和B相同的元素
}
return 0;
}
```
在这个例子中,`processArray`函数接收一个指向数组的指针和数组大小,然后复制A数组的内容到新的B数组。注意,这并不是真正的“赋值”,而是数据的副本。
阅读全文