c语言子函数调用数组指针
时间: 2023-10-19 20:12:27 浏览: 153
在C语言中,我们可以使用数组指针作为函数的参数来传递数组。下面是一个示例代码,演示了如何定义一个包含数组指针参数的函数,并在主函数中调用它:
```c
#include <stdio.h>
void print_array(int *ptr, int size) {
for (int i = 0; i < size; i++) {
printf("%d ", *(ptr + i));
}
printf("\n");
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int *ptr = arr;
print_array(ptr, 5);
return 0;
}
```
在上面的代码中,我们定义了一个名为`print_array`的函数,它接受两个参数:一个整型指针`ptr`和一个整数`size`。在函数内部,我们使用指针`ptr`来访问数组元素,并使用循环打印数组中的值。
在主函数中,我们定义了一个包含5个整数的数组`arr`,并将其首地址赋值给指针`ptr`。然后,我们调用`print_array`函数,并将指针`ptr`和数组的大小作为参数传递给它。
当程序运行时,`print_array`函数将打印数组中的所有元素:
```
1 2 3 4 5
```
通过使用数组指针作为函数参数,我们可以轻松地将数组传递给函数并在其中进行操作。
相关问题
c语言子函数输入数组
在C语言中,我们可以使用指针来传递数组给子函数。下面是一个示例代码,演示了如何在子函数中输入数组:
```c
#include <stdio.h>
// 子函数,用于输入数组的元素
void inputArray(int *arr, int size) {
printf("请输入数组的元素:\n");
for (int i = 0; i < size; i++) {
scanf("%d", &arr[i]);
}
}
// 主函数
int main() {
int size;
printf("请输入数组的大小: ");
scanf("%d", &size);
int arr[size];
inputArray(arr, size);
printf("输入的数组为:\n");
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
在上面的代码中,我们定义了一个`inputArray`函数来输入数组的元素。它以指针`arr`和数组的大小`size`作为参数。在子函数中,我们使用`scanf`函数来逐个输入数组的元素。
然后,在主函数中,我们首先输入数组的大小,然后创建一个大小为`size`的数组。接下来,我们调用`inputArray`函数,并将数组和大小传递给它。最后,我们在主函数中打印出输入的数组。
C语言如何用子函数交换数组中两个数位置
在C语言中,你可以通过定义一个子函数(也称为函数指针)来交换数组中两个元素的位置。这里是一个简单的例子,假设我们有一个数组`arr[]`和两个整数索引`index1`和`index2`,我们将交换它们所对应的值:
```c
#include <stdio.h>
// 定义交换函数
void swap(int* a, int b) {
int temp = *a; // 存储第一个元素
*a = b; // 更新第一个元素为第二个元素
b = temp; // 更新第二个元素为原始的第一个元素
}
// 主函数,用于演示如何调用子函数交换数组元素
void main() {
int arr[5] = {10, 20, 30, 40, 50}; // 示例数组
int index1 = 0, index2 = 2; // 指定要交换的索引
printf("Before swapping: ");
for (int i = 0; i < 5; i++) {
printf("%d ", arr[i]);
}
// 调用swap函数,传入数组地址和需要交换的元素位置
swap(&arr[index1], &arr[index2]);
printf("\nAfter swapping: ");
for (int i = 0; i < 5; i++) {
printf("%d ", arr[i]);
}
return 0;
}
阅读全文